正负整形输出判断出错,如何解决?
题目是这样的
<从键盘输入5个整型数,当输入的数据为负整数时,输出显示该数,否则,不显示>
请问我写错了哪儿吗?
虽然可以判断正负整数,但是为什么会输出 -88888888类型,而不是直接输出负整形数呢?
#include "stdio.h"
main()
{
int a,b,c,d;
scanf("%d %d %d %d",&a,&b,&c,&d);
if ( 0 > a ) printf(" %d 第一位为负整型,请重新输入 \n",a);
else if ( 0 > b ) printf(" %d 第二位为负整型,请重新输入\n ",b);
else if( 0 > c ) printf(" %d 第三位为负整型,请重新输入\n",c);
else if( 0 > d ) printf(" %d 第四位为负整型,请重新输入\n",d);
else printf("%d %d %d %d 全为正整型 \n",a,b,c,d);
}
[解决办法]
程序应该这样写:
程序
输入 a b c d
while a < 0 输出 a 为负整型
输入a
while b < 0 输出 b 为负整型
输入b
while c < 0 输出 c 为负整型
输入c
while d < 0 输出 d 为负整型
输入d
输出 a b c d
这样就能起到输入判断的作用;
如果不想重新输入就这样:
输入 a b c d
if a > 0 输出 a 为负整型
if
b > 0 输出b为负整型
if
c > 0 输出c为负整型
if
d > 0 输出 d为负整型
输出a b c d
这样就不用重新输入了;
因为abcd各个变量之间没有联系,所以不用if与else配对;