------------恢复内容开始------------
实验任务一
#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的作用是以4为宽度输出数字,位数不够用0补齐
#include <stdio.h> int main() { int num; while(scanf("%d",&num) != EOF) { printf("2049%04d\n",num); } return 0; }
实验任务二
#include<stdio.h> int main() { char ans1,ans2; printf("复习了没?(输入y或x表示复习了,输入n或N表示没复习): "); ans1 = getchar(); //从键盘输入一个字符,赋值给ans1 getchar(); //思考为什么要加这一行。试着去掉这一行,看看对运行有没有影响。 printf("动手敲代码了没?(输入y或Y表示敲了,输入n或N表示木有敲) : "); ans2 = getchar(); if((ans1 == 'y'||ans1 == 'Y')&&(ans2 == 'y'||ans2 == 'Y')) { printf("\n罗马不是一天建成的:)\n"); } else { printf("\n罗马不是一天毁灭的。。。\n"); } return 0; }
getchar()可以吃掉一个空格,如果没有Line9,程序运行到第一个答案回车之后就结束了,直接就会跳出下面一行文字和“罗马不是一天毁灭的。。。”
实验任务三
//判断字符类型 #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,top,bottom; float sum; while(scanf("%d %d",&n,&a) !=EOF) { bottom = a; sum = 0; for(top=1;top<=n;top++) { sum = sum + (float)top/bottom; bottom = bottom*10+a; } printf("n = %d,a = %d,sum = %f\n",n,a,sum); } return 0; }
实验任务五
// 生成N个0~99之间的随机整数,并打印输出 #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() % 100; //生成一个0~99之间的随机整数 printf("%3d",x); } printf("\n"); return 0; }
实验任务六
#include<stdio.h> #include<stdlib.h> #include <time.h> int main() { int a,i,ans; srand(time(NULL)); a = rand()%31+1; i = 0; printf("猜猜2021年12月哪一天会是你的lucky day\n开始喽,你有三次机会,猜吧(1~31):"); if(a != ans) { while(i<3) { scanf("%d",&ans); if(ans<a) { printf("你猜的日期早了,lucky day还没到呢\n"); i++; } else if(ans>a) { printf("你猜的日期晚了,lucky day悄悄溜到前面啦\n"); i++; } } printf("\n次数用完啦!偷偷告诉你,12月,你的lucky day是%d号\n",a); } else { printf("猜对了,你真厉害!\n"); } return 0; }
实验任务七
#include<stdio.h> int main() { int i,n; printf("input:"); scanf("%d",&n); for(i=0;i<n;i++) { printf(" o \n"); printf("<H>\n"); printf("I I\n"); } return 0; }
#include<stdio.h> int main() { int i,n; printf("input:"); scanf("%d",&n); for(i=0;i<n;i++) { printf(" o \t"); } printf("\n"); for(i=0;i<n;i++) { printf("<H> \t"); } printf("\n"); for(i=0;i<n;i++) { printf("I I \t"); } printf("\n"); return 0; }
#include<stdio.h> int main() { int i,n,a,b; //a是总循环的次数 printf("input:"); scanf("%d",&n); for(a=1;a<=n;a++) { for(b=1;b<a;b++) { printf(" \t"); } for(i=1;i<=2*n-1-(a-1)*2;i++) //2*n-1-(a-1)*2是每一行打印的字符的个数 { printf(" o \t"); } printf(" \n"); //每行o打完之后都换行 //下面就同理 打印出身子和腿 for(b=1;b<a;b++) { printf(" \t"); } for(i=1;i<=2*n-1-(a-1)*2;i++) { printf("<H> \t"); } printf(" \n"); for(b=1;b<a;b++) { printf(" \t"); } for(i=1;i<=2*n-1-(a-1)*2;i++) { printf("I I\t"); } printf(" \n"); } return 0; }
实验总结
本次实验主要学习并运用了 1、while、if else和for语句,以及这些语句之间简单的嵌套使用。
2、补充学习了随机数的生成:
#include<stdio.h> #include<stdlib.h> #include <time.h> int main() { int a; srand(time(NULL)); a = rand(); printf("随机数是%d",a); return 0; }
3、并且学习了设定未知数的值,eg.若要使未知数在1~31之间,则对未知数取余,即 a=rand()%31 这样未知数的范围就变成0~30,再加1,范围就变成1~31(或者直接%32应该也可以。
实验感受:。。。程序设计挺难的,要多多练习并且注重分析和理解,锻炼逻辑思维能力(否则拿到题目脑子里完全是一团浆糊。。。
尚存的问题:感觉虽然题做完了,但没有完全理解与掌握其中的知识点,还需消化消化。