我正在学习一个C编程入门课程,第一个任务是在给定的范围内找到几个完美的方格。我试图获得第一个完全平方根,但是当我试图将第一个平方根赋值给一个变量时,我无法这样做,它总是显示0。
这是我写的程序:
#include<stdio.h>
void main()
{
float y= 0;
float k = 1.0;
float n;
int i=0;
int first_sqrt;
first_sqrt = 0;
printf("enter number: \n");
scanf("%f",&n);
// finding the first perfect square
for(y = 0; y<=10000; y++)
{
while((k*k - n)>0.0001 || (n - k*k)> 0.0001)
{
k = (k + n/k) / 2;
//printf("%f\n", k);
}
i = (int)k;
if(i*i == n)
{
printf("perfect squareroot: %d\n", i);
i = first_sqrt;
y = 10001;
//break;
}
else
{
printf("not perfect square: %f\n", n);
n = n+1;
}
}
printf("first perfect square root: %d\n", first_sqrt);
}
我很抱歉发布了整个程序,但我不知道问题可能在哪里。这是第一周的第一次作业,所以我还不了解C语言中的很多函数,也不能用数学函数来完成这个作业。任何帮助都将不胜感激。已经找了一整天了,但不太明白。
对这一问题最好有一个基本的方向。谢谢。
发布于 2016-01-25 08:18:10
表达式i = first_sqrt;
将first_sqrt
分配给i
,而不是将i
分配给first_sqrt
。将其更改为first_sqrt = i;
。除此之外,您还可以从//break;
中删除注释。
发布于 2016-01-25 08:18:16
倒转这条线
I= first_sqrt;
to first_sqrt = i;
发布于 2016-01-25 08:18:22
你把任务搞混了。这是:
i = first_sqrt;
应:
first_sqrt = i;
https://stackoverflow.com/questions/34997161
复制相似问题