实验2 C语言分支语句、循环语句应用编程
实验一:
源码:
#include <stdio.h> int main() { int num; scanf("%d", &num); printf("2049%04d\n", num); scanf("%d", &num); printf("2049%04d\n", num); scanf("%d", &num); printf("2049%04d\n", num); return 0; }
结果:

%04d的作用:%占位符的作用,d以十进制打印,4最大字段宽度为4,0前导用0代替空格填充。
源码:
#include<stdio.h> int main(void) { int num; while (scanf("%d", &num) != EOF) printf("2049%04d\n", num); return 0; }
结果:

实验二:
源码:
#include <stdio.h> int main() { char ans1, ans2; printf("复习了没? (输入y或Y表示复习了,输入n或N表示没复习) : "); ans1 = getchar(); getchar(); printf("\n动手敲代码了没? (输入y或Y表示敲了,输入n或N表示木有敲) : "); ans2 = getchar(); if ((ans1=='y'||ans1=='Y')&&(ans1=='y'||ans1=='Y')) printf("\n罗马不是一天建成的:)\n"); else printf("\n罗马不是一天毁灭的。。。\n"); return 0; }
结果:

实验三:
源码:
#include <stdio.h> int main() { char x; x = getchar(); if (x>='0'&&x<='9') printf("%c是数字字符\n", x); else if ((x>='A'&&x<='Z')||(x>='a'&&x<='z')) printf("%c是英文字母\n", x); else printf("%c是其它字符\n", x); return 0; }
结果:



实验四:
源码:
#include<stdio.h> int main() { int n,a,i; double sum; while(scanf("%d %d",&n,&a)!=EOF) { printf("n = %d, a = %d, ",n,a); for(i=1,sum=0;i<=n;i++) { sum+=i*1.0/a; a=10*a+a%10; } printf("sum = %lf",sum); } return 0; }
结果:

实验五:
源码:
#include <stdio.h> #include <stdlib.h> #include <time.h> const int N = 5; int main() { int x, n; srand(time(0)); // 以当前系统时间作为随机种子 for (n = 1; n <= N; n++) { x = (rand() % 31)+1; // 生成一个0~99之间的随机整数 printf("%3d", x); } printf("\n"); return 0; }
结果:

实验六:
源码:
#include<stdio.h> #include <stdlib.h> #include <time.h> int main() { int my_luck_day,my_guess,i; printf("猜猜2021年12月哪一天会是你的luck day\n"); printf("开始喽,你有三次机会,猜吧(1~31):"); srand(time(0)); my_luck_day = (rand() % 31)+1; printf("%d",my_luck_day); for(i=1;i<=3;i++) { scanf("%d", &my_guess); getchar(); if(my_guess<my_luck_day) { printf("你猜的日期早了,luck day 还没到呢\n"); if(i==3) break; printf("再猜(1~31):"); } else if(my_guess==my_luck_day) { printf("bingo~,你猜对了!\n"); break; } else { printf("你猜的日期晚了,luck day 悄悄溜到前面啦\n"); if(i==3) break; printf("再猜(1~31):"); } } if( i==3 && my_guess!=my_luck_day ) printf("次数用完啦。偷偷告诉你:12月,你的luck day 是%d号\n",my_luck_day); return 0; }
结果:



实验七:
源码:
#include<stdio.h> int main() { int n,i; printf("input n: "); scanf("%d",&n); for(i=1;i<=n;i++) { printf(" O\n"); printf("<H>\n"); printf("I I\n");
printf("\n"); } return 0; }
#include<stdio.h> int main() { int n,i; printf("input n: "); scanf("%d",&n); for(i=1;i<=n;i++) { printf(" O "); } printf("\n"); for(i=1;i<=n;i++) { printf("<H> "); } printf("\n"); for(i=1;i<=n;i++) { printf("I I "); } printf("\n"); return 0; }
#include<stdio.h> int main() { int i,j,n; printf("input n: "); scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<i;j++) printf(" "); for(j=i;j<2*n-i-1;j++) printf(" O "); printf("\n"); for(j=0;j<i;j++) printf(" "); for(j=i;j<2*n-i-1;j++) printf("<H> "); printf("\n"); for(j=0;j<i;j++) printf(" "); for(j=i;j<2*n-i-1;j++) printf("I I "); printf("\n"); } return 0; }
结果:



实验总结:
1.条件语句的if语句,if...else if...else语句,语句的嵌套使用及其技巧(分而治之的思想,层层剥茧),多分支语句switch(目前用的还不是很熟练,更习惯用if...else if代替),
循环语句的while循环,do...while(目前也不是很熟练,潜意识里都是先判断后执行的想法),for循环;
2.break和continue(目前打断循环的位置还是没办法第一时间找到,并且和条件语句搭配时找位置更花时间);
3.getchar()的吸收回车键作用;
4.算法这一块感觉还要多练。。。。。。

浙公网安备 33010602011771号