循环迭代判断\丢番图

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

前言

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


目录
相关文章
|
3天前
|
安全 编译器 程序员
C# 中 foreach 循环和 for 循环深度比较
为什么建议你多数情况下使用 foreach 进行遍历循环?看完你就明白了
|
6月前
|
存储 C++ 索引
c++for结构循环超详细讲解
c++for结构循环超详细讲解
108 1
|
6月前
while循环和do while循环有什么区别
while循环和do while循环有什么区别
74 0
|
12月前
|
缓存 索引
这 11 个 for 循环优化你得会
这 11 个 for 循环优化你得会
|
12月前
while循环和do while循环有什么区别?
while循环和do while循环有什么区别?
132 0
|
Web App开发 测试技术
优化循环的方法-循环展开
优化循环的方法-循环展开
91 0
|
Python
利用循环计算收入支出
利用循环计算收入支出
80 0
|
机器学习/深度学习
将迭代次数问题几何化的一个计算例子
神经网络调参,设置迭代次数
114 0
将迭代次数问题几何化的一个计算例子