实验1 C语言输入输出和简单程序编写

实验1:

源代码1:

#include<stdio.h>
#include<stdlib.h>
int main()
{
    printf(" O\v");
    printf("<H>\v");
    printf("I I\v");
    printf(" O\v");
    printf("<H>\v");
    printf("I I\v");
    system("pause");
    return 0;
}

截图2:

源代码2:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int main()
 4 {
 5     printf(" O\t");
 6     printf(" O\n");
 7     printf("<H>\t");
 8     printf("<H>\n");
 9     printf("I I\t");
10     printf("I I\n");
11     system("pause");
12     return 0;
13 }

截图2:

实验2:

源代码:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int main()
 4 {
 5     double a,b,c;
 6     scanf("%lf%lf%lf",&a,&b,&c);
 7     if(a+b>c&&a+c>b&&b+c>a)
 8         printf("能构成三角形\n");
 9     else
10         printf("不能构成三角形\n");
11     system("pause");
12     return 0;
13 }

截图:

实验3:

源代码:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int main()
 4 {
 5     char ans1,ans2;
 6     printf("每次课前认真预习、课后及时复习了没?(输入y或Y表示有,输入n或N表示没有):");
 7     ans1=getchar();
 8     getchar();
 9     printf("\n动手敲代码实践了没?(输入y或Y表示敲了,输入n或N表示木有敲):");
10     ans2=getchar();
11     if((ans1=='y'||ans1=='Y')&&(ans2=='y'||ans2=='Y'))
12         printf("\n罗马不是一天建成的,继续保持哦:)\n");
13     else
14         printf("\n罗马不是一天毁灭的,我们来建设吧\n");
15     system("pause");
16     return 0;
17 }

截图:

删除getchar();的后果:

:

getchar();的作用:

存放换行符

实验4:

源代码:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int main()
 4 {
 5     double x,y;
 6     char c1,c2,c3;
 7     int a1,a2,a3;
 8     scanf("%d%d%d",&a1,&a2,&a3);                       /*a1,a2,a3前没加&*/
 9     printf("a1=%d,a2=%d,a3=%d\n",a1,a2,a3);
10     scanf("%c%c%c",&c1,&c2,&c3);
11     printf("c1=%c,c2=%c,c3=%c\n",c1,c2,c3);
12     scanf("%lf,%lf",&x,&y);                            /*double型数据要用%lf而不是%f*/
13     printf("x=%lf,y=%lf\n",x,y);                       /*double型数据要用%lf而不是%f*/  
14     system("pause");
15     return 0;
16 }

截图:

实验5:

源代码:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int main()
 4 {
 5     double year;
 6     year=1000000000.0/3600.0/24.0/365.0;
 7     printf("10亿秒约等于%.0lf年\n",year);
 8     system("pause");
 9     return 0;
10 }

截图:

实验6:

源代码:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<math.h>
 4 int main()
 5 {
 6     double x,ans;
 7     while(scanf("%lf",&x)!= EOF)
 8     {
 9         ans=pow(x,365);
10         printf("%.2f的365次方:%.2f\n",x,ans);
11         printf("\n");
12     }
13     system("pause");
14     return 0;
15 }

截图:

实验7:

源代码:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int main()
 4 {
 5     double c,f;
 6     while(scanf("%lf",&c)!=EOF)
 7     {
 8     f=c/5*9+32;
 9     printf("摄氏度c=%.2lf时,华氏度f=%.2lf\n\n",c,f);
10     }
11     system("pause");
12     return 0;
13 }

截图:

实验8:

源代码:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<math.h>
 4 int main()
 5 {
 6     double area,a,b,c,s;
 7     while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF)
 8     {
 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     printf("\n");
13     }
14     system("pause");
15     return 0;
16 }

截图:

实验结论:

1.在用scanf()函数输入浮点数时,不要在格式控制中指定小数部分的位数,否则编译时会报错。例如scanf("%5.2f,",&f),编译器会报告错误

2.printf()函数里面不用加&,否则输出的是存储地址,scanf()里才要加

3.分隔符空格会被读入并赋给%c,但scanf("%d%d%d",a,b,c)可以用空格,但如果是scanf("%d,%d,%d",a,b,c)需用逗号(,)分开,否则会报错

4.ctrl+z后要按回车才能退出循环

5.&&的优先级>||,这会导致如ans1=='y'||ans1='Y'&&ans2=='y'||ans2=='Y'的中间部分ans1='Y'&&ans2=='y'被看成一个式子,所以要加()

posted @ 2024-09-27 14:09  liuseki  阅读(6)  评论(0编辑  收藏  举报