实验一
一、实验结论
任务一
task1_1.c
// 打印一个字符小人 #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; }
预期效果
task1_2.c
// 打印一个字符小人 #include <stdio.h> int main() { printf(" O \t O\n"); printf("<H>\t<H>\n"); printf("I I\tI I\n"); return 0; }
预期效果
任务二
task2.c
1 #include <stdio.h> 2 int main() 3 { 4 double a, b, c; 5 6 scanf("%lf%lf%lf", &a, &b, &c); 7 8 if(a+b>c && a+c>b && b+c>a){ 9 printf("能构成三角形\n"); 10 } 11 else{ 12 printf("不能构成三角形\n"); 13 } 14 15 return 0; 16 }
预期效果
任务三
task3.c
#include <stdio.h> int main() { char ans1, ans2; // 用于保存用户输入的答案 printf("每次课前认真预习、课后及时复习了没? (输入y或Y表示有,输入n或N表示没有) : "); ans1 = getchar(); // 从键盘输入一个字符,赋值给ans1 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; }
预期效果
回答问题
去掉line9之后输入字符后回车程序就运行结束了,getchar()接收到了字符回车,直接继续运行接下来的程序了
任务四
task4.c
1 #include<stdio.h> 2 int main() 3 { 4 double x, y; 5 char c1, c2, c3; 6 int a1, a2, a3; 7 8 scanf("%d%d%d", &a1, &a2, &a3);//修改 9 printf("a1 = %d, a2 = %d, a3 = %d\n", a1,a2,a3); 10 11 scanf("%c%c%c", &c1, &c2, &c3); 12 printf("c1 = %c, c2 = %c, c3 = %c\n", c1, c2, c3); 13 14 scanf("%lf,%lf", &x, &y);//修改 15 printf("x = %f, y = %lf\n",x, y); 16 return 0; 17 }
预期效果
任务五
task5.c
1 // 计算10亿秒约等于多少年,并打印输出 2 #include <stdio.h> 3 4 int main() 5 { 6 int year; 7 double time=1e9;// 补足代码 8 9 year=round(time/(60*60*24*365));// ××× 10 printf("10亿秒约等于%d年\n", year); 11 return 0; 12 }
预期效果
任务六
task6.c
1 #include <stdio.h> 2 #include <math.h> 3 int main() 4 { 5 double x, ans; 6 while(scanf("%lf", &x) != EOF){ 7 ans = pow(x, 365); 8 printf("%.2f的365次方: %.2f\n", x, ans); 9 } 10 11 12 return 0; 13 }
预期效果
任务七
task7.c
1 #include <stdio.h> 2 #include <math.h> 3 int main() 4 { 5 double c, f; 6 while(scanf("%lf", &c) != EOF){ 7 f=9*c/5 +32; 8 printf("摄氏度c = %.2f时,华氏度f = %.2f\n", c, f); 9 } 10 11 12 return 0; 13 }
预期效果
任务八
task8.c
1 #include <stdio.h> 2 #include <math.h> 3 int main(){ 4 double a,b,c; 5 6 while(scanf("%lf%lf%lf", &a,&b,&c) != EOF){ 7 8 double s,area; 9 s=(a+b+c)/2; 10 area=sqrt(s*(s-a)*(s-b)*(s-c)); 11 printf("a = %.0lf,b = %.0lf,c = %.0lf,area = %.3lf\n",a,b,c,area); 12 } 13 14 15 return 0; 16 }
预期效果
二、实验总结
在进行编程的过程中,很好的复习了所学内容中一些很琐碎的知识点,例如:getchar()的特殊作用,双引号和单引号不能混淆,float和double的区别。之前一直都在学习python,所以写程序的时候脑子容易乱,希望慢慢熟练的编写c语言程序。