2020年6月12日 星期五

程式設計Week16

整數最大值、最小值(基礎)

程式碼:
#include <stdio.h>
int a[100];
int main( )
{
int max=0,min=99999;
for(int i=0;i<100;i++)
{
   scanf("%d",&a[i]);
   if(a[i]==0)break;
   if(a[i]>max)max=a[i];    //找出最大整數
   if(a[i]<min)min=a[i];     //找出最小整數
}
   printf("[%d,%d]",min,max);
}

平面兩座標的面積 (基礎)

程式碼:
#include <stdio.h>
int main( )
{
   int a,c,b,d;
   scanf("%d%d%d%d",&a,&b,&c,&d);
   int ans=(a-c)*(b-d);
   if(ans<0)printf("%d",-ans);    //面積不會是"負數"
   else printf("%d",ans);
}

整數向量相加(基礎)

程式碼:
#include <stdio.h>
int a[10];    //分開讀取兩個陣列,並相加
int b[10];
int main( )
{
   int N;
   scanf("%d",&N);
   for(int i=0;i<N;i++)
   {
      scanf("%d",&a[i]);
   }
   for(int i=0;i<N;i++)
   {
      scanf("%d",&b[i]);
   }
   for(int i=0;i<N;i++)
   {
      printf("%d ",a[i]+b[i]);
   }
}

計算一組任意數目的整數的總和(基礎) 

程式碼:
#include <stdio.h>
int a[100];
int main( )
{
   int ans=0;
   for(int i=0;i<100;i++)
   {
      scanf("%d",&a[i]);
      if(a[i]= =0)break;
      if(a[ i ]>0)ans+=a[i];      //如果是負值不加進去
   }
   printf("%d",ans);
}

億萬富翁 (進階)

程式碼:
#include <stdio.h>
int main( )
{
   long long int a;      //設一個很長的整數為a
   scanf("%lld",&a);
   long long int b=0;
   while(a!=0)     //因為印出來數值相反,每3數一組倒過來變成一個新的數值
   {
       b+=a%1000;
       a/=1000;
       b*=1000;
   }
   long long int now=b/1000;
   long long int ans=0;
   while(now!=0)
   {
       ans=now%1000;
       printf("%lld",ans);     //每3數一組印出","
       now/=1000;
       if(now>0)printf(",");
    }
}

秒數換算(進階)

程式碼:
#include <stdio.h>
int main( )
{
   int a;
   scanf("%d",&a);
   int hr=a/3600,min=a/60%60,s=a%60%60;
   printf("%.2d:%.2d:%.2d",hr,min,s);   //"%.2d"讀出兩位數(也可寫"%02d")
}

計算級數的值(進階)

程式碼:
#include <stdio.h>
int f(int a)
{
   int ans=0;
   for(int i=0;i<=a;i++)
   {
      ans+=(2*i)+1;
   }
    return ans;
}

int main( )
{
   int a;
   scanf("%d",&a);
   int ans=f(a);
   printf("f(%d)=%d",a,ans);
}

拆解輸入的正整數(進階)

程式碼:
#include <stdio.h>
int main( )
{
   int a;
   scanf("%d",&a);
   int b=0;
   for(int i=1;i<20000;i*=10//每跑一輪i*10
   {
      b=a%10;
      if(a!=0)printf("%d ",b*i);
      a/=10;
   }
}

小人物

程式碼:
PImage img;
void setup( )
{
size(500,500);
img=loadImage("img.jpg");
imageMode(CENTER);
}

int a=0, b=0, x=250, y=250;  //"a,b"切割圖片;x,y為座標
void draw( )
{
background(255);
//image( img, 0,0);
image(  img.get(141*a, 211*b, 141,211), x,y);   //get函式取出圖
if(frameCount%30= =0) a = (a+1)%4;    //"frameCount"每秒自己動2次,

                                                                             //"a"切換0~4圖片
}

void keyPressed( )    //上下左右鍵切換動作及座標
{
    if(keyCode= =RIGHT)
    {
         b=3;
         x++;
    }
    if(keyCode= =LEFT)
    {
         b=2;
         x--;
     }
    if(keyCode= =UP)
    {
         b=1;
         y--;
     }
    if(keyCode= =DOWN)
    { 

         b=0;
         y++;
     }

}


沒有留言:

張貼留言