实验2 C语言分支与循环基础应用编程
1.实验任务1
task1源代码:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 5 #define N 5 6 #define N1 374 7 #define N2 465 8 9 int main() 10 { 11 int number; 12 int i; 13 14 srand(time(0));/*以当前系统时间为随机种子*/ 15 16 for(i = 0;i < N; ++i){ 17 number = rand()%(N2 - N1 + 1)+N1; 18 printf("202383290376%04d\n",number); 19 } 20 system("pause"); 21 return 0; 22 }
task1运行截图:
问题1:解释line17代码的功能
答:产生374-465之间的随机数
问题2:这个程序的功能是什么?
答:随机产生学生学号
2. 实验任务2
task2源代码:
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() 5 { 6 char color; 7 while(scanf("%c",&color)!= EOF){ 8 getchar();/*用于删去回车,否则显示完相应语句后,会显示"something must be wrong...\n"*/ 9 switch(color){ 10 case 'r':printf("stop!\n");break; 11 case 'g':printf("go go go\n");break; 12 case 'y':printf("wait a minute\n");break; 13 default:printf("something must be wrong...\n");break; 14 } 15 } 16 system("pause"); 17 return 0; 18 }
task2运行截图:
3. 实验任务3
task3源代码:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 5 int main() 6 { 7 int tureday,day,i; 8 printf("猜猜2023年11月哪一天会是你的lucky day\n"); 9 printf("开始,你有三次机会,猜猜看(1~30):"); 10 11 srand(time(0));//设置随机种子 12 tureday=rand()%30+1; 13 14 scanf("%d",&day); 15 16 for(i=1;i<=3;++i){ 17 if(day==tureday){ 18 printf("哇,猜中了!\n"); 19 break;} 20 else if(day<tureday){ 21 printf("你猜的日期早了,luckyday还没到\n");} 22 else{ 23 printf("你猜的日期晚了,luckyday已经过了\n");} 24 25 if(i<3){ 26 printf("再猜:"); 27 scanf("%d",&day);} 28 29 } 30 31 if(i==4) 32 printf("次数用完,你的luckday是11月%d",tureday); 33 34 system("pause"); 35 return 0; 36 }
task3运行截图:
4. 实验任务4
task4源代码:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <math.h> 4 5 6 int tongxiang(int p){ 7 int m,t,q; 8 m=1,t=0; 9 for(q=1;q<=p;++q){ 10 m=m*10;} 11 t=(m-1)/9; 12 return t;} 13 14 int main() 15 { 16 int n,a,t,i; 17 double s; 18 19 while(scanf("%d%d",&n,&a)!= EOF){ 20 s=0; 21 for(i=1;i<=n;++i){ 22 t=tongxiang(i); 23 s+=1.0*i/(a*t);} 24 printf("n=%d,a=%d,s=%lf\n",n,a,s);} 25 26 system("pause"); 27 return 0; 28 }
task4运行截图:
5. 实验任务5
task5源代码:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <math.h> 4 5 int main() 6 { 7 int i,j; 8 for(i=1;i<=9;++i){ 9 for(j=1;j<=i;++j){ 10 printf("%d*%d=%d\t",j,i,i*j);} 11 printf("\n");} 12 system("pause"); 13 return 0; 14 }
task5运行截图:
6. 实验任务6
task6源代码:
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() 5 { 6 int n; 7 int i,a,b; 8 9 scanf("%d",&n); 10 11 for(i=1;i<=n;++i){ 12 //头 13 for(a=1;a<=i-1;++a){ 14 printf("\t");}//使居中 15 for(b=1;b<=2*n-1-2*(i-1);++b){ 16 printf(" O\t");} 17 printf("\n"); 18 19 //身子 20 for(a=1;a<=i-1;++a){ 21 printf("\t");} 22 for(b=1;b<=2*n-1-2*(i-1);++b){ 23 printf("<H>\t");} 24 printf("\n"); 25 26 //腿 27 for(a=1;a<=i-1;++a){ 28 printf("\t");} 29 for(b=1;b<=2*n-1-2*(i-1);++b){ 30 printf("I I\t");} 31 printf("\n\n"); 32 33 } 34 35 system("pause"); 36 return 0; 37 }
task6运行截图:
总结:值得反复理解!