C語言第五次上機實驗

目標:
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;
}


程序運行效果截圖:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章