c - 无法在C程序中的for循环外使用变量值

标签 c loops

<分区>

我正在学习介绍性的 C 编程类(class),第一个作业是找出给定范围内的完全平方数。 我试图获得第一个完美的平方根,但是当我尝试将第一个平方根分配给一个变量时,我无法这样做并且它总是显示 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 中的很多函数,我不能在这个作业中使用数学函数。 任何帮助,将不胜感激。整天都在搜索这个,但不太了解。

非常感谢解决该问题的基本方向。谢谢。

最佳答案

表达式 i = first_sqrt;first_sqrt 分配给 i 而不是 i 分配给 first_sqrt。将其更改为 first_sqrt = i;。除此之外,您还可以从 //break; 中删除注释。

关于c - 无法在C程序中的for循环外使用变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34997161/

相关文章:

c - 我想将读取链与C中的文件分开

python - 如何让 while 循环识别它是文件结尾

Python:循环遍历两个向量的值

线性回归上的 R 循环

c - 假设我们有结构填充且 int 的大小为 4,double 的大小为 8 字节,下面这段代码中结构的大小是多少

c - 在哪里可以找到 off_t 类型的完整定义?

c - x86-64下的快速堆栈切换

c - 读取 .txt 文件,C

php - 如何在 while 循环中只打印一次帖子?

java - 在 Java 中将 * 打印为三角形?