问题:确定用户输入的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);
}
Run Code Online (Sandbox Code Playgroud)
在这里,虽然正数和负数被正确计算,但积极却不是.它总是显示正数,偏移量为4196240,即如果有4个正数,则显示4196244.
关于4196240怎么这么特别?为什么会显示这个?
您需要初始化所有计数变量.您的声明仅初始化zero,离开pos和neg未初始化.
int pos = 0, neg = 0, zero = 0 ;
Run Code Online (Sandbox Code Playgroud)
关于4196240怎么这么特别?为什么会显示这个?
当你没有初始化它时恰好是那个值,没有什么特别之处,它是一个垃圾值.
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |