陈凯迪的实验2
一、实验结论
任务1
代码:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 5 #define N 5 6 7 int main(){ 8 int grade,number,i; 9 10 srand(time(0)); 11 12 for(i=0;i<N;++i){ 13 grade = rand()%4 + 2018; 14 number = rand()%999 + 1; 15 printf("%d8330%04d\n",grade,number); 16 } 17 18 return 0; 19 }
截图:
Picture
问题:
1 1、随机取2018至2021之间的年份 2 2、随机取1至999之间的数字(感觉这一步有问题,万一学号末尾是“000”怎么办?) 3 3、随机抽取2018届至2021届之间的学号
任务2
代码:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 #define _CRT_SECURE_NO_WARNINGS 5 int main() { 6 int m, n, i; 7 srand(time(0)); 8 m = rand() % 30 + 1; 9 printf("猜猜这个四月的哪一天是你的幸运日,\n你有三次机会哦!\n"); 10 11 for (i = 1; i <= 3; i++) { 12 scanf("%d", &n); 13 if (m > n) 14 printf("早了\n"); 15 else if (m < n) 16 printf("迟了\n"); 17 else { 18 printf("哇,猜中了呢"); 19 break; 20 } 21 } 22 if (m != n) 23 printf("那我就大发慈悲地告诉你吧,是%d号呢", m); 24 return 0; 25 }
截图:
Picture
任务3
代码:
1 #include <stdio.h> 2 #define N 80 3 int main(){ 4 char ch; 5 while(scanf("%c",&ch)!=EOF){ 6 7 getchar(); 8 if(ch=='y') 9 printf("wait a minute\n"); 10 else if(ch=='g') 11 printf("go go go\n"); 12 else if(ch=='r') 13 printf("stop!\n"); 14 else 15 printf("罕见捏\n"); 16 } 17 return 0; 18 }
截图:
Picture
任务4
代码:
1 #include <stdio.h> 2 int main(){ 3 int n,a,i; 4 double s,fm; 5 while(scanf("%d",&n)!=EOF&&scanf("%d",&a)!=EOF){ 6 s=0; 7 fm=0; 8 for(i=1;i<=n;i++){ 9 fm=fm*10+a; 10 s=s+i/fm; 11 } 12 printf("n = %d,a = %d,s = %lf\n",n,a,s); 13 } 14 return 0; 15 }
截图:
Picture
任务5
代码:
1 #include <stdio.h> 2 int main(){ 3 int i,j; 4 for(i=1;i<=9;i++){ 5 for(j=1;j<=i;j++){ 6 printf("%d×%d=%-3d",j,i,i*j); 7 } 8 printf("\n"); 9 } 10 return 0; 11 }
截图:
Picture
任务6.1
代码:
1 #include <stdio.h> 2 #define _CRT_SECURE_NO_WARNINGS 3 int main() { 4 int n, i; 5 printf("input n:"); 6 scanf("%d", &n); 7 for (i = 1; i < 4 * n; i++) { 8 switch (i % 4) { 9 case 0: 10 printf("\n"); 11 break; 12 case 1: 13 printf(" o \n"); 14 break; 15 case 2: 16 printf("<H>\n"); 17 break; 18 case 3: 19 printf("I I\n"); 20 break; 21 } 22 } 23 return 0; 24 }
截图:
Picture
任务6.2
代码:
1 #include <stdio.h> 2 #define _CRT_SECURE_NO_WARNINGS 3 int main() { 4 int n, i, j; 5 printf("input n:"); 6 scanf("%d", &n); 7 for (i = 1; i < 4; i++) { 8 for (j = 1; j <= n; j++) { 9 switch (i % 4) { 10 case 0: 11 printf("\n"); 12 break; 13 case 1: 14 printf(" o "); 15 break; 16 case 2: 17 printf("<H> "); 18 break; 19 case 3: 20 printf("I I "); 21 break; 22 } 23 if(j==n) printf("\n"); 24 } 25 } 26 return 0; 27 }
截图:
Picture
任务6.3
代码:
1 #include <stdio.h> 2 #define _CRT_SECURE_NO_WARNINGS 3 int main() { 4 int n; 5 int i; 6 int j; 7 int a;//每行中前面要空出来的空格数 8 int b;//每行中要打印的小人身体部件的个数 9 printf("input n:"); 10 scanf("%d", &n); 11 for (i = 1; i < 4 * n; i++) 12 { 13 a=(i-1)/4;//每行前面要空出来的空格数与行数有关 14 if (i % 4 == 0)//每当到4的倍数不打印,直接换行 15 printf("\n"); 16 else 17 { 18 for (j = 1; j <= a; j++)//line18至line36都是在一行内操作,直到line36才换行 19 printf(" "); 20 b= 2 * n - a * 2 - 1; 21 for (j = 1; j <= b; ++j) 22 { 23 switch (i % 4)//每行要打印的小人身体部件与行数有关 24 { 25 case 1: 26 printf(" o "); 27 break; 28 case 2: 29 printf("<H> "); 30 break; 31 case 3: 32 printf("I I "); 33 break; 34 } 35 } 36 printf("\n");//每行结束后换行 37 } 38 } 39 return 0; 40 }
截图:
Picture
二、实验总结
做完实验6,感觉又理解了不少新东西呢,尤其是代码的可读性很重要。刚开始敲的时候没有用中间变量a和b,写for循环的时候很痛苦。加了这两个变量后就简单许多。