摘要
一、实验目的
二、实验准备
三、实验内容
四、实验结论
task1
源代码:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 #define N 5 5 #define N1 374 6 #define N2 465 7 8 int main() 9 { 10 int number; 11 int i; 12 srand( time(0) ); // 以当前系统时间作为随机种子 13 for(i = 0; i < N; ++i) { 14 number = rand()%(N2 - N1 + 1) + N1; 15 printf("202383290376%04d\n", number); 16 } 17 18 system("pause"); 19 return 0; 20 }
结果:
问题1:确保number在374~465之间
问题2:随机取数number,实现学号随机抽取
task2
源代码:
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() 5 { char x; 6 7 while(scanf("%c",&x) != EOF){ 8 if(x == 'y') 9 printf("wait a minute\n"); 10 else if(x == 'g') 11 printf("go go go\n"); 12 else if(x == 'r') 13 printf("stop\n"); 14 else printf("something must be wrong...\n"); 15 getchar(); 16 } 17 18 19 20 21 system("pause"); 22 return 0; 23 }
结果:
task3
源代码:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 5 int main() 6 { int day,d,i; 7 srand(time(0)); 8 day = rand()%30 + 1; 9 10 printf("猜猜2023年11月哪一天会是你的lucky day\n"); 11 printf("开始喽,你有三次机会,猜吧(1~30):"); 12 scanf("%d",&d); 13 14 for(i = 1; i < 3; i++){ 15 16 if(d == day){ 17 printf("哇,猜中了:-)\n"); 18 system("pause"); 19 return 1; 20 } 21 else if(d < day) 22 printf("你猜的日期早了,你的lucky day还没到呢\n"); 23 else printf("你猜的日期晚了,你的lucky day已经过啦\n"); 24 25 printf("再猜(1~30):"); 26 scanf("%d",&d); 27 } 28 29 printf("次数用完啦。偷偷告诉你:11月,你的lucky day是%d\n",day); 30 31 system("pause"); 32 return 0; 33 }
结果:
为测试猜中后执行语句,补充结果:
task4
源代码:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <math.h> 4 5 int main() 6 { int n,a,i; 7 double s; 8 9 while(scanf("%d%d",&n,&a) != EOF){ 10 k = s = 0; 11 for(i = 1; i <= n; i++){ 12 k = 10*k +1; 13 s += 1.0*i/a/k; 14 } 15 printf("n = %d, a = %d, s = %lf",n,a,s); 16 } 17 18 system("pause"); 19 return 0; 20 }
结果:
task5
源代码:
1 #include <stdio.h> 2 #include <stdlib.h> 4 5 int main() 6 { int i,j,ans; 7 for(i = 1; i <= 9; i++){ 8 for(j = 1; j <= i; j++){ 9 ans = i*j; 10 printf("%dx%d = %2d ",j,i,ans); 11 } 12 printf("\n"); 13 } 14 system("pause"); 15 return 0; 16 }
结果:
task6
源代码:
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() 5 { int n; 6 int i,j,k; 7 8 scanf("%d",&n); 9 10 for(i = 1; i <= n; i++){ 11 for(j = 1; j < i ; j++) 12 printf("\t"); 13 for(k = 1; k <= 2*(n + 1) - 1 - 2*i; k++) 14 printf(" O \t"); 15 printf("\n"); 16 17 for(j = 1; j < i ; j++) 18 printf("\t"); 19 for(k = 1; k <= 2*(n + 1) - 1 - 2*i; k++) 20 printf("<H>\t"); 21 printf("\n"); 22 23 for(j = 1; j < i ; j++) 24 printf("\t"); 25 for(k = 1; k <= 2*(n + 1) - 1 - 2*i; k++) 26 printf("I I\t"); 27 printf("\n"); 28 } 29 30 system("pause"); 31 return 0; 32 }
结果:
五、实验总结
1.新认识了一个报错语句:Run-Time Check Failure #3 - The variable 's' is being used without being initialized.
原因是s没有初始化赋值
2.在task4中总是第一次结果运行为正确,原因在于s和k在一遍循环过后初始值并不等于0,而是以上一次的计算结果为初始值
需要把每次重新赋值为0也加入循环之中
3.在小人题中再次体会到了编程中拆分的奇妙之处,小人的头,身体,腿,是分开来打印的,空格的输出也类推为分行打印。即先打空格(不换行)然后打出头,再打空格,然后不换行打身体......amazing!!!
一开始时完全被图形的思维迷惑住了,一直在思考如何”哐“地空出一整个小人的位置,然后复制粘贴xN,emmmmm......然后就是根本不可能绕开”换行“的操作,一败涂地。
(#希望能警记这次经验&教训)
标签:11,源代码,int,编程,C语言,printf,include,day,分支 From: https://www.cnblogs.com/forgiver/p/17767571.html