1.拾遺補缺;
2.瞭解C語言及其語句的更多細節.
任務1:分析下面的例子,給出z和w的計算值、說明爲什麼?
#include<stdio.h>
int main(void)
{
int z,w,x=2,y=5;
z=(x+3,y++,x++);
w=(x++,x+3,x+7);
printf("%d\n%d\n",z,w);
}
程序運行效果截圖:
z=2 w=11
逗號運算是所有運算中最低級的,以最後的表達式的值作爲該逗號表達式的值。
第一個結果爲2,即x++爲x=x,x=x+1,所以輸出2.
由於第一個x=3,在x=x+1,所以最後爲4+7=11,即爲11。
------------------------------------任務分割線------------------------------------
任務2:自行設計一個程序,程序須運用switch語句。要求有一定技術含量!
我的程序:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
char answer='y';
while(answer=='y')
{
answer='n';
int sum=0;
while(1)
{
int a,b;
printf("輸入一個數(1-6):\n");
scanf("%d",&a);
srand(time(0));
b=rand()%6+1;
if(a==b)break;
int s1=rand()%6+1;
int s2=rand()%6+1;
int s3=rand()%6+1;
int s4=rand()%6+1;
int s5=rand()%6+1;
int s6=rand()%6+1;
switch(a)
{
case 1:printf("%d分!\n",s1);sum+=s1;break;
case 2:printf("%d分!\n",s2);sum+=s2;break;
case 3:printf("%d分!\n",s3);sum+=s3;break;
case 4:printf("%d分!\n",s4);sum+=s4;break;
case 5:printf("%d分!\n",s5);sum+=s5;break;
case 6:printf("%d分!\n",s6);sum+=s6;break;
default:printf("輸入錯誤!\n");break;
}
}
printf("遇到炸彈!!\nGAME OVER \n");
printf("總分=%d\n",sum);
printf("again?\n <y/n>");
scanf(" %c",&answer);
}
return 0;
}
程序運行效果截圖: