实验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;
}

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

#include <stdio.h>
int main()
{
int x,y; int r1,r2,r3,r4; x=1; y=2; r1=x+y; r2=x-y; r3=x*y; r4=x/y;
printf(
"r1=%d\n",r1); printf("r2=%d\n",r2); printf("r3=%d\n",r3); printf("r4=%d\n",r4); return 0; }

#include <stdio.h>
int main()
{
float x,y; float r1,r2,r3,r4; x=1; y=2; r1=x+y; r2=x-y; r3=x*y; r4=x/y;
printf(
"r1=%f\n",r1); printf("r2=%f\n",r2); printf("r3=%f\n",r3); printf("r4=%f\n",r4); return 0; }

第一个定义的是整型变量,无法表示小数,因而无法显示r4的正确数值。第二个是浮点型变量可以表示小数

#include <stdio.h>
int main() 
{
int n, r1, r2, r3, r4;
n
= 100; r1 = n*(n+1)/2; r2 = (n+1)*n/2; r3 = n/2*(n+1); r4 = (n+1)/2*n;
printf(
"n = %d\n", n); printf("r1 = %d\n", r1); printf("r2 = %d\n", r2); printf("r3 = %d\n", r3); printf("r4 = %d\n", r4); return 0;
}

#include <stdio.h>
int main() 
{
int n, r1, r2, r3, r4; n = 101; r1 = n*(n+1)/2; r2 = (n+1)*n/2; r3 = n/2*(n+1); r4 = (n+1)/2*n;
printf(
"n = %d\n", n); printf("r1 = %d\n", r1); printf("r2 = %d\n", r2); printf("r3 = %d\n", r3); printf("r4 = %d\n", r4); return 0; }

源代码中赋值运算符右侧的C语言表达式对应的数学计算式皆为“首项加末项乘项数除以2”的求和公式。

当n取偶数时,r4中率先计算的(n+1)/2会得到一个小数,而此时会默认舍弃小数用整数部分进行下一步计算,故ex31最终得到的r4会得到与r1、r2有不相同的计算结果;同理,当n取奇数时,ex32中的r3会得到与r1、r2不相同的计算结果。

#include <stdio.h>
int main()
{
int answer; char words[5000]; printf("网课学习让一些人喜一些人忧。\n"); printf("1.作为一个宅,社恐,觉得这样很好。有网络,自主学习,很ok。\n"); printf("2. 不喜,不喜,很不喜。眼睛快瞎了。脑壳有点卡…\n"); printf("3.中间派。不知道。说不清。\n"); printf("4.其他…\n"); printf("你的选择: "); scanf("%d",&answer); if (answer==4)
{ printf(
"请补充说明你的想法: \n"); getchar(); gets(words); } printf("\n"); printf("当遇到问题是你会选择:\n"); printf("1. 遇到问题, 就解决问题。不懂的,搜索式学习,逐个攻破。\n"); printf("2. 遇到问题, 不高兴。然后……没有了。\n"); printf("3. 其它…\n"); printf("你的选择: \n"); scanf("%d",&answer); if(answer==1) printf(":)\n"); else if(answer==2) printf("这样不能解决问题啊…我们选择1好不好:)\n"); else if(answer==3)
{ printf(
"请补充说明你的想法:\n"); getchar(); gets(words); } return 0; }

实验总结:

       通过这次实验我更加熟悉了一个源程序文件的基本结构和编译运行方法,具体了解了换行和输入时的空格在最后运行时的表现形式,对于整型变量和浮点型变量还有运算符用法有了一个基本的认识。

       但是说实话就目前而言我确实还没有理解为什么明明整型变量并不能表示一个小数但是在出错的时候得到的计算结果却是一个有6位小数的0。以及如何才能够解决在数学运算中因为中间步骤出现小数而得到的结果偏差,是否只能够通过改变运算顺序?

       

posted @ 2021-03-17 19:51  wyccc  阅读(64)  评论(0编辑  收藏  举报