实验一
任务一
源代码
#include<stdio.h> int main() {printf(" o \n");printf("<H>\n");printf("I I\n");printf(" o \n");printf("<H>\n");printf("I I\n");return 0; }
效果
源代码
#include<stdio.h> int main() {printf(" o o\n");printf("<H> <H>\n");printf("I I I I\n");return 0; }
效果
任务2
源代码
#include<stdio.h>int main() {double a,b,c;scanf("%lf%lf%lf",&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a)printf("能构成三角形\n");elseprintf("不能构成三角形\n");return 0; }
效果
任务3
源代码
#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')&&(ans2=='y'||ans2=='Y'))printf("\n罗马不是一日建成的,继续保持哦\n");else printf("\n罗马不是一天毁灭的,我们来建设吧\n"); return 0; }
效果
回答问题
结果是只能输入一次数据,程序就结束判断。
原因是下面有一个pirntf函数,如果不加getchar(),按了回车键后,程序就会直接输出。
任务4
源代码
#include<stdio.h>int main() {double x,y;char c1,c2,c3;int a1,a2,a3;scanf("%d%d%d",&a1,&a2,&a3);//没有用&,来引出变量的位置 printf("a1 = %d,a2 = %d,a3 = %d\n",a1,a2,a3);scanf("%c%c%c", &c1, &c2, &c3);printf("c1 = %c, c2 = %c, c3 = %c\n", c1, c2 , c3);scanf("%lf%lf",&x,&y); //逗号也表示字符,在double类型里 ,scanf函数只能用lf printf("x = %lf,y = %lf\n",x,y);return 0; }
效果
任务5
源代码
#include<stdio.h>int main() {int year;year =1000000000/(60*60*24*365)+0.5;printf("十亿秒约等于%d年\n",year); return 0;}
任务6
源代码
#include<stdio.h> #include<math.h>int main() {double x, ans;while (scanf("%lf",&x)!=EOF){ans = pow(x,365);printf("%.2f的365次方:%.2f\n",x,ans);printf("\n");}return 0; }
效果
任务7
源代码
#include<stdio.h>int main() {double F, C;while(scanf("%lf",&C)!=EOF){F = C*9/5+32; printf("摄氏度C=%.2f时,华氏度F=%.2f\n",C,F);printf("\n");}return 0; }
效果
任务8
源代码
#include<stdio.h> #include<math.h> int main() { double a,b,c,s,area;while (scanf("%lf %lf %lf",&a,&b,&c)!=EOF) {s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%lf, b=%lf ,c=%lf,area = %.3lf",a,b,c,area);printf("\n");} return 0; }
效果
实验总结
getchar函数中,回车键也算输入,故想进行复合判断,中间还需加入一个gatchar()。scanf函数要记得加转义符号&以及里面不能加逗号