c - 反向显示输出的程序流程

标签 c string loops

1.我有一个用 C 语言编写的示例程序,它接受用户的正数输入,并在用户输入负数时停止。它最多接受十个输入。然后以相反的顺序显示结果。我想知道这是如何发生的,因为当我尝试映射它时 c 的值为负数,第二个循环仅在满足条件 (c>=0) 时才起作用。
例如,如果我只输入一个正数,接下来我将输入一个负数。

input[0]=2     
i=0+1    
c=1-2

input[1]=-4
i=1+1    
c=2-2       

num=2*input[-1]?
<小时/>
    #include<stdio.h>

int main()  
{    
        float in;    

    float input[10];
    int i=0;
    int c;

    printf("Please input a number:");
    do{ scanf("%f", &in);
            input[i] = in;

            i=i+1;

            if(i>10)
                break;

            c=i-1;      
    }while(in>=0);

    do{     float num;
            num= 2*input[c];
            printf("Input = %.2f.  Num= %.2f.\n", input[c], num);

            c=c-1;
    }while(c>=0);

    return 0;
}    

使用 do-while 代码的输入:
2
3
-4 输出:
输入:3.00 输出:6.00
输入:2.00 输出:4.00

  1. 当我尝试使用 for 循环实现它时,它在 gcc 中编译,但当我尝试执行时,它显示段错误(核心转储)

    #include<stdio.h>
    

    int main() { 漂浮; 浮点输入[10]; int i,c;

    printf("Please input a number:");
    
    for(i=0; in>=0; ){
        scanf("%f", &in);       
        input[i] = in;
        i=i+1;      
        if(i==10)
            break;      
        c=i-2;
    }
    
    for(; c>=0;){
        float num;
        num= 2*input[c];
        printf("Input = %.2f.  Num= %.2f.\n", input[c], num);
        c=c-1;
    }
    
    return 0;
    

    }

最佳答案

I'm wondering how does that happen because when I try to map it the value of c is negative

当我尝试用 2 映射它时,我不认为 c 会变成负值。 & -4作为输入我得到..

当您输入2时;
它使input[i] = 2 ( i 等于 0)然后 i增加到 1。
然后它使 c = i - 1c = 1 - 1c = 0 .
不会退出,因为 in >= 0 (2).

当您输入 -4 ;
我做input[i] = -4 ( i 等于 1,c 等于 0) 然后在 i 增加到 2 后
然后它使 c = i - 1c = 2 - 1c = 1 .
这次退出是因为in < 0 & 不是 in >= 0 .

do{ scanf("%f", &in);
        input[i] = in;

        i=i+1;

        if(i>10)
            break;

        c=i-1;      
} while (in >=0)

关于c - 反向显示输出的程序流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21225391/

相关文章:

php - PHP爆炸并可能逃脱分隔符

javascript - 普通JS : Reveal only the next element at the same parent group

python - 在 Python 中打印的列表项前面添加数字

c - goto 语句在 c 语言中的使用频率是多少?

在 C 中捕获转义字符

c - 在 C 结构中初始化值

ios - append 和 addObject + 比较两个日期有什么区别

c - C 中逐字符、逐行读取文件

java - 如何在 Java 中正确修剪字符串中的空格?

python-3.x - Dark Sky API 在 Python 3 中每天迭代一年