数字的大小

时间:2015-06-18 17:37:10

标签: c

问题:确定用户输入的pos,neg和0的数量。

c中的代码:

#include <stdio.h>

void main() {
    int pos, neg, zero = 0 ;
    char x[7] ; 
    int num = 0 ;
    printf("\nPress Q to quit anytime");
    while( printf("\n") , gets(x)) {
        num = atoi(x) ;
        if( !strcmp(x , "Q")) break ;
        if( num > 0) pos++ ;
        else if (num < 0) neg++ ;
        else zero++ ;
    }
    printf("\nPos nos: %d \tNeg nos: %d \tZeros: %d", pos, neg, zero);
}

在这里,尽管正确计算了负数和零数,但积极却不是。它总是显示正数,偏移量为4196240,即如果有4个正数,则显示4196244。

关于4196240这么特别吗?为什么会显示这个?

1 个答案:

答案 0 :(得分:6)

您需要初始化所有计数变量。您的声明仅初始化zeroposneg未初始化。

int pos = 0, neg = 0, zero = 0 ;
  

关于4196240这么特别吗?为什么会显示这个?

当你没有初始化它时恰好是那个价值,没有什么特别之处,它是一个垃圾值。