#include <stdio.h> int main(){ printf(" 0 0\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; }
整型数据精度比单精度实型要低,在运算过程中只能保留到整数。
#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; }
r1=100*(100+1)/2 r2=(100+1)*100/2 r3=100/2*(100+1) r4=(100+1)/2*100
数据被规定为整型,因此在计算过程中小数部分精度将损失。偶数除以2没有小数部分,因此做偶数除法时不发生精度损失,而奇数则相反,导致改变n的赋值时会出现不同的计算结果。
#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("你的选择:\n"); 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好不好:)"); else if(answer==3){ printf("请补充你的想法:\n"); getchar(); gets(words); } return 0; }
实验总结
命名不同数据类型导致计算结果不一致,虽然没有试过但也能反向推出网课学习中老师说的数值溢出的危害。
这次实验课让我充分认识到自己对使用电脑的不熟悉,特别是学习使用一个未曾接触过的平台,安装编译器等等,对我来说都是很大的挑战,还好舍友老师都很有耐心的帮助我。学习是持久战,相信我在日后的学习中我会有所进步。