前言
在我自己学习C语言的时候踩了一些坑,一些资料查了好久(OS:感谢各位大佬的博客)
下面是我自己学习c的时候的一些记录,希望能给其他初学者一些避雷的小tips。
注释是我自己敲的,可能有点不着调qaq
如果有不足之处,请大佬们指正(轻喷,谢谢~)
注:我这里用的是vs2010,devc++略有涉及但不多,vs2022可能略有不同(比如有些可能报错的地方已经被优化啦),所以仅供参考。
代码:
//循环迭代判断\丢番图 #include<stdio.h> #include<math.h> #include<stdlib.h> int main() { int a,b; int x,y,z; int t; printf("请输入a,b:"); scanf("%d,%d",&a,&b); printf("你输入的a为%d,b为%d\n",a,b); t=(int)sqrt(2*a*b+0.0); /* 在.cpp文件中报错,在.c文件中不会 加个上0.0就好了 或者这样t=(int)sqrt(double(2*a*b)); 里面是float也行 sqrt括号里的参数必须是float或者double vs2022没试过,不知道会不会报错 新建项目的时候用.c没用,用我的改法,不行用dev,别用vs */ x=a+t; y=b+t; z=a+b+t; printf("x=%d,y=%d,z=%d\n",x,y,z); if(t*t==2*a*b) { printf("2ab %s一个完全平方数\n",t*t==2*a*b?"是":"不是"); /根据丢番图的规则计算/ printf("(%d,%d,%d) %s勾股定理方程\n",x,y,z,x*x+y*y==z*z?"满足":"不满足"); //可以直接满足的,懒得改了 //分支里的式子肯定满足啦~ //%s是一个格式化输出字符串的占位符 } else { printf("(%d,%d,%d) %s勾股定理方程\n",x,y,z,x*x+y*y==z*z?"满足":"不满足"); //本来就是演示三目运算符的啦~ //都改掉就没意思啦,嘻~ printf("重来吧,嘻~\n"); } system("pause"); return 0; }