循环迭代判断\丢番图

简介: 循环迭代判断\丢番图

前言

       在我自己学习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;
}


目录
相关文章
|
2月前
|
JavaScript 前端开发 Java
for 循环学习
【10月更文挑战第4天】
105 5
|
1月前
使用 for 循环逆向输出数组
【10月更文挑战第29天】使用 for 循环逆向输出数组。
27 2
|
1月前
用 for 循环迭代出输出元素
【10月更文挑战第28天】用 for 循环迭代出输出元素。
27 0
|
1月前
for 循环迭代出输出元素
【10月更文挑战第28天】for 循环迭代出输出元素。
23 0
|
3月前
|
索引 Python
如何优雅地遍历可迭代对象?
如何优雅地遍历可迭代对象?
29 0
|
缓存 索引
这 11 个 for 循环优化你得会
这 11 个 for 循环优化你得会
|
Web App开发 测试技术
优化循环的方法-循环展开
优化循环的方法-循环展开
107 0
|
机器学习/深度学习
将迭代次数问题几何化的一个计算例子
神经网络调参,设置迭代次数
124 0
将迭代次数问题几何化的一个计算例子
循环的差异性记录
循环的差异性记录循环的差异性记录