c语言-C语言简单程序调试问题

问题描述

C语言简单程序调试问题

这是源码:

#include
#include

int main()
{
double x,y,z,i;
for(x = 1;x<100000;x++)
{

y = sqrt(x+100);

z = sqrt(x+268);

if((y*y == x+100)&&(z*z == x+268))
{
printf("%lfn",x);
}
}

return 0;

}

不知道问题出在哪里?麻烦解答一下。
另,为什么知道设定的数值范围是1-10万,这个是不一定的?
再另,表示对for里面的不太理解

PS,题目:一个整数,它加上100后是一个完全平方数,
再加上168又是一个完全平方数,请问该数是多少?

解决方案

 #include<stdio.h>
#include<math.h> 

int main()
{
    int x = 0;
    while (true)
    {
        if (((int)sqrt(x + 100) * (int)sqrt(x + 100) == x + 100)
            && ((int)sqrt(x + 168) * (int)sqrt(x + 168) == x + 168))
        {
            printf("%dn", x);
            break;
        }
        x++;
    }
    return 0;
}

解决方案二:

#include
#include

int main()
{
double y,z,i;//int 型
for(int x = 1;x<100000;x++) //100000是让这个数尽量大
{
y = sqrt(x+100);//开平方后不一定是整数,可能是小数
z = sqrt(x+268);

if((y*y == x+100&&z*z == x+268))//如果满足这两个条件,说明y,z是整数,也就是说x+100和x+268是完全平方数
{
printf("%lfn",x);
}
}

return 0;

}

解决方案三:

你的y,z应该是整数,你是for里面的循环代码看不懂么?如果一个数+100或者168取平方根是整数那么这个数才是完全平方数。所以你得保证你的y,z是整数类型,如果这个数不是完全平方数,那么取平方根的时候会做精度取舍,你再平方就不会等于这个数加上100或者268,相当于检验的目的,当然这个检验的前提也是yz是整型

时间: 2024-12-02 08:31:41

c语言-C语言简单程序调试问题的相关文章

c语言 内存问题-c语言新手,写了个简单程序,没问题啊,怎么就出现这种问题呢,求问

问题描述 c语言新手,写了个简单程序,没问题啊,怎么就出现这种问题呢,求问 1C 这是程序 这是输入的数据,3个人名 这是出现的异常,不懂是为什么啊?有人给说说吗 解决方案 看着像是访问变量出问题了,你怎么不放代码放截图怎么看的清.最好放代码别人好调试 解决方案二: 楼主这种要存好几个字符串的,要么用二维数组,要么用指针数组 #include<iostream>using namespace std;void main() { int i; char *name[4]; //创建指针数组,含有

c语言编程报错,简单程序

问题描述 c语言编程报错,简单程序 题目是输出a,b.c中最小数值 自学c语言,求帮忙看看哪里不对呀 #include #include int min(int a,int b,int c ) { int z; if(a<b) z=a; { if(a<c) z=a; else z=c; return (z); } else z=b; { if(b<c) z=b; else z=c; return(z); } } main () { int x,y,m; printf("Inpu

中文字符-如何用C语言编写一个简单的输入法程序,要求可以输入汉字。

问题描述 如何用C语言编写一个简单的输入法程序,要求可以输入汉字. 不太清楚汉字在计算机中是如何存储的,想知道例如微软的智能ABC以及搜狗输入法是怎样实现拼音拼写下的汉字输入. 解决方案 首先要有一个汉字的编码库,比如GB2312编写的是拼音输入法的话,还要建立一个拼音与汉字对应的数据库然后根据用户输入的拼音,提示出对应的汉字(汉字的优先顺序由数据库决定,同时还可以学习该用户的使用习惯)如果输入法还支持智能联想输入的话,还要加入词库(也有优先级),这样可以根据前一个字来推断出下一个可能的字 解决

c语言-VS2010C语言程序调试断点跳变问题

问题描述 VS2010C语言程序调试断点跳变问题 用这张图具体说明,我在中间那条先上设置了一个断点,一步步调试到第二条横线处,就直接跳到了最上面的那条线上本来程序不是该顺序执行的么.网上说可能是换行出了问题,我用十六制在UE中检查了下,发现没有错误.但还是会出错.整体运行可以,但是断点调试这一段就会出现这样的问题 解决方案 可能是调试符号和源代码不匹配,删除了bin目录和obj目录,重新生成下看看. 解决方案二: @devmiao,谢谢你哈.刚才换了种调试方式居然没出错,现在已经不会出错了.好神

c语言写的简单加密程序,看下哪儿错了

问题描述 c语言写的简单加密程序,看下哪儿错了 //实现如下 FILE *fp; char data; if((fp=fopen("D:test.txt","r+"))==NULL) { printf("文件打开失败!"); exit(1); } data=fgetc(fp); while(!feof(fp)) { data=data^0x18;//加密原理,四五位取反 fseek(fp,-1,1);//回退一个字节 fputc(data,fp)

c语言-C语言程序调试一闪而过

问题描述 C语言程序调试一闪而过 C语言程序调试一闪而过C语言程序调试一闪而过C语言程序调试一闪而过 解决方案 在main()函数的末尾加一个 system("pause"),函数末尾有return 0时system("pause")加在return 0前 解决方案二: 2013VS的C语言程序调试一闪而过 解决方案三: 是控制台结束消失了吧,release下没事,或者你在最后加一行等待代码(暂停,或者等待输入都可以) 解决方案四: 你没有设置断点吧?是用VS的吗

各位大神,请问vs性能调试工具是仅仅能对c#语言编写的程序调试吗?

问题描述 各位大神,请问vs性能调试工具是仅仅能对c#语言编写的程序调试吗? 最近写了一个c++程序,但耗内存特别大,所以想做一下性能分析,看看到底是那个 地方占了内存,刚好vs有一个性能分析工具,请问vs的性能分析工具是不是可以分析 所有语言程序写的代码? 解决方案 我试过,可以对c++ 进行性能调试的,应该是可以的

分析C语言一个简单程序_C 语言

首先给大家一个简单的例子,让读者有个整体的认识,代码如下: #include <stdio.h> int main() { puts(""); return 0; } 函数的概念 先来看第4行代码,这行代码会在显示器上输出"".前面我们已经讲过,puts 后面要带( ),字符串也要放在( )中. 在C语言中,有的语句使用时不能带括号,有的语句必须带括号.带括号的称为函数(Function) . C语言提供了很多功能,例如输入输出.获得日期时间.文件操作等

c语言-关于C语言编译C51单片机程序的一点疑问

问题描述 关于C语言编译C51单片机程序的一点疑问 1.为什么两段不相干的代码会互相影响 在主程序里有一段点亮发光二极管的代码,和一段计数器计数并在数码管上显示的代码.同时工作时,二极管正常点亮,数码管几秒才点亮一回,而且十位显示是闪烁一下就不显示了2.数码管显示时,位选和段选顺序不能改变吗?按照书上的方法是先段选再位选,但是点亮的数码管是本来不应该点亮的,段选和位选顺序换了之后就能正常显示了 解决方案 问题1)你所谓的同时工作是指led亮的同时数码管也在显示,是这样的吗?单片机跑的程序都是单线