2020年5月29日 星期五

程式設計Week14

(基礎)找千位數

題目:
讀入 1000 - 100000 的數字,找出其千位數的數字

程式碼:
#include <stdio.h>
int main( )
{
int a;
scanf("%d",&a);
printf("%d",(a/1000)%10);  //先"/"1000找商數再"%"找餘數
}

(基礎)正整數平方和

題目:
輸入正整數n,可計算:1*1+2*2+...+n*n 之總和的結果。數字範圍:整數1~1000 

程式碼:
#include <stdio.h>
int main( )
{
int a;
scanf("%d",&a);
int ans=0;
for(int i=1;i<=a;i++)
{
ans+=i*i;
}
printf("%d",ans);
}

(基礎)兩數間3倍數總和

題目:
請輸入兩個由小到大的正整數(起始數字與終止數字),可計算出【起始數字】到【中止數字】間所有3的倍數之總和。{ex. 3 9 => 3+6+9=18} 數字範圍:整數1~1000 

程式碼:
#include <stdio.h>
int main( )
{
int a,b;
scanf("%d%d",&a,&b);
int ans=0;
for(int i=a;i<=b;i++)   //範圍從a開始,b結束
{
if(i%3= =0)ans+=i;
}
printf("%d",ans);
}

(基礎)判斷象限

題目:
判斷所輸入座標(x,y)的所在象限,(僅考慮在四個象限的情況,不考慮在軸線及原點的情況)。{ex.(1,1)屬第一象限、(-1,1)屬第二象限、(-1,-1)屬第三象限、(1,-1)屬第四象限} 數字範圍:整數 -1000~1000 

程式碼:
#include <stdio.h>
int main( )
{
int a,b;
scanf("%d%d",&a,&b);
if(a>0&&b>0)printf("1\n");
else if(a>0&&b<0)printf("4\n");
else if(a<0&&b>0)printf("2\n");
else printf("3\n");
}

(基礎)求N所有因數和

題目:

輸入n (n>0), 求 n之所有因數和。{ex. 2之因數為1、2,因數和為因數加總1+2=3} 

程式碼:
#include <stdio.h>
int main( )
{
  int a;
  scanf("%d",&a);
  int ans=0;
  for(int i=1;i<=a;i++)  //迴圈找因數
  {
    if(a%i==0)ans+=i;  //可以整除,把i加入答案
  }
  printf("%d",ans);
}


(基礎)判斷閏年

題目:
輸入西元y年,判斷該y年是否為閏年,輸出相對訊息。{閏年定義:西元年份除以4可整除,且除以100不可整除,為閏年。 西元年份除以100可整除,且除以400不可整除,為平年} 

程式碼:
#include <stdio.h>
int main( )
{
int a;
scanf("%d",&a);
int ans=0;
if(a%400= =0)ans=1;
else if(a%100= =0)ans=0;
else if(a%4= =0)ans=1;
else ans=0;
if(ans= =1)printf("%d is a leap year.\n",a);
else printf("%d is not a leap year.\n",a);
}

(基礎)數字倒印


題目:
輸入10個整數,把這10個數字倒著印出來。數字範圍:整數1 – 100 

程式碼:
#include <stdio.h>
int a[10];
int main( )
{
for(int i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(int i=9;i>=0;i--)   //反讀
{
printf("%d ",a[i]);
}
}

(基礎)區間測速


題目:
龜山區萬壽路1段裝設區間測速器,長度1.2公里,輸入1個整數(車輛通過該區間所行駛的秒數),輸出它的時速印出來(只印整數部分,小數部分無條件捨去)。(時速的單位是每小時幾公里( km/hour)。1小時有60分鐘,1分鐘有60秒,輸入的是秒數) 數字範圍:整數1 – 1000 

程式碼:
#include <stdio.h>
int main( )
{
int a;
scanf("%d",&a);
int ans=60*60*1.2/a;  //如果直接印出會出現亂碼
printf("%d",ans);
}


(基礎)水杯接水

題目:
有一桶水要分裝到杯子中,水桶中的水有N毫升,杯子的容量為M毫升,請問至少需要幾個杯子才能承接水桶裡的水。現在輸入N與M,請輸出答案。數字範圍:N為1 – 9999,M為1 –99 

程式碼:
#include <stdio.h>
int main( )
{
int a,b;
scanf("%d%d",&a,&b);
int ans;
if(a%b= =0)ans=a/b;   //剛好滿
else ans=a/b+1;    //有多出,再拿一個杯子
printf("%d",ans);
}


(基礎)平面座標面積

題目:
輸入平面兩點座標的四個整數值(x1,y1,x2,y2),計算並顯示這兩點所圍之面積。(EX.輸入(x1,y1,x2,y2),計算(x1,y1)、(x1,y2)、(x2,y2)、(x2,y1)所圍面積。) 數字範圍:整數1 –100 

程式碼:
#include <stdio.h>
int main( )
{
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
int ans=(a-c)*(b-d);  //X座標距離差*Y座標距離差=面積
if(ans>0)printf("%d",ans);
else printf("%d",-ans);
}

憤怒鳥音樂

程式碼:
import ddf.minim.*;   //外掛
Minim minim;             //物件minim
AudioPlayer player;    //物件playrt

void setup( )
{
  minim=new Minim(this);
  player=minim.loadFile("song.mp3");
  player.play( );
}

void draw( )            //不寫沒聲音

{

}

(接續)亂鳥打不死豬

程式碼:
PImage imgBird,imgPig;
float [ ] pigX=new float[20];      //豬的最大數量:20隻
float [ ] pigY=new float[20];
int pigN=0;         //0隻豬
import ddf.minim.*;
Minim minim;
AudioPlayer player;

void setup( )
{
  size(500,400);
  imgBird=loadImage("bird.png");
  imgPig=loadImage("pig.gif");
  imageMode(CENTER);
 minim=new Minim(this);
  player=minim.loadFile("song.mp3");
  player.play( );
}

float birdX=100,birdY=300,oldX,oldY,vx=0,vy=0;
boolean bMoving=false;   

void draw( )
{
   background(255);
   for(int i=0; i<pigN; i++)      //畫豬
   {
      image(imgPig, pigX[i], pigY[i], 100,100);
   }
   image(imgBird, birdX,birdY,100,100);
   if(bMoving) line(mouseX,mouseY,oldX,oldY);
   birdX+=vx; birdY+=vy;    //速度隨拉直線的長度增加
   if(birdX>500-50 || birdX<50) vx=-vx;
   if(birdY>400-50 || birdY<50) vy=-vy; 

void mouseReleased( )
{
   bMoving=false;
   vx=(oldX-mouseX)/10;  vy=(oldY-mouseY)/10;
}

void mousePressed( )
{
   if( mouseButton= =RIGHT)   //按右鍵,增加一隻豬
   {
      pigX[pigN]=mouseX; pigY[pigN]=mouseY;//TODO2
      pigN++;//TODO2
   }
   if(dist(mouseX,mouseY,birdX,birdY)<50)
   {
      bMoving=true;
      oldX=birdX;  oldY=birdY;
   }
}

void mouseDragged( )
{
   if(bMoving)
   {
      birdX=mouseX;
      birdY=mouseY;
   }
}

沒有留言:

張貼留言