实验作业1
实验一
任务一
源代码
#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"); else printf("不能构成三角形\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函数要记得加转义符号&以及里面不能加逗号