c语言编程问题
#include"stdio.h"intmain(void){inta,b,c,d,e,f;scanf("%d",&a);/输入一个四位数/if(a<1000||a>99...
#include "stdio.h"
int main (void)
{ int a,b,c,d,e,f;
scanf("%d",&a); /输入一个四位数/
if (a<1000||a>9999) /判断是否为四位数/
printf("不是四位数,错误\n");
else
b=a/1000;
c=(a-1000*b)/100;
d=(a-1000*b-100*c)/10;
e=(a-1000*b-100*c-10*d);
f=b+c+d+e;
if(f%2==0)
printf("各位之和是%d为偶数\n",f);
else printf("各位之和是%d为奇数\n",f);
return 0;
}
这是我的程序 目的是拆分一个四位数,并求各位数字的和,然后判断奇偶性
并且,如果不是四位数,还要进行判断
问题就出现了,当我输入的数字不是四位时,本来就不应该进行拆分的运算了,但是它还是进行拆分了,于是就出现错误,希望高手指点一下 展开
int main (void)
{ int a,b,c,d,e,f;
scanf("%d",&a); /输入一个四位数/
if (a<1000||a>9999) /判断是否为四位数/
printf("不是四位数,错误\n");
else
b=a/1000;
c=(a-1000*b)/100;
d=(a-1000*b-100*c)/10;
e=(a-1000*b-100*c-10*d);
f=b+c+d+e;
if(f%2==0)
printf("各位之和是%d为偶数\n",f);
else printf("各位之和是%d为奇数\n",f);
return 0;
}
这是我的程序 目的是拆分一个四位数,并求各位数字的和,然后判断奇偶性
并且,如果不是四位数,还要进行判断
问题就出现了,当我输入的数字不是四位时,本来就不应该进行拆分的运算了,但是它还是进行拆分了,于是就出现错误,希望高手指点一下 展开
3个回答
展开全部
#include "stdio.h"
int main (void)
{
int a,b,c,d,e,f;
while(1) /*可以用个while循环使输入错误时重新输入*/
{
scanf("%d",&a); /*输入一个四位数*/ /*你的注释有错*/
if (a<1000||a>9999) /*判断是否为四位数*/ /*同上*/
{
printf("不是四位数,错误!请从新输入:\n");
continue;
}
else
{ /*少了大括号*/
b=a/1000;
c=(a-1000*b)/100;
d=(a-1000*b-100*c)/10;
e=(a-1000*b-100*c-10*d);
f=b+c+d+e;
} /*少了大括号*/
if(f%2==0)
printf("各位之和是%d为偶数\n",f); /*不是四位数,同样要进行输出,而输出的是垃圾值所以上面用个循环重新输入*/
else printf("各位之和是%d为奇数\n",f); /*同上*/
break;
}
return 0;
}
int main (void)
{
int a,b,c,d,e,f;
while(1) /*可以用个while循环使输入错误时重新输入*/
{
scanf("%d",&a); /*输入一个四位数*/ /*你的注释有错*/
if (a<1000||a>9999) /*判断是否为四位数*/ /*同上*/
{
printf("不是四位数,错误!请从新输入:\n");
continue;
}
else
{ /*少了大括号*/
b=a/1000;
c=(a-1000*b)/100;
d=(a-1000*b-100*c)/10;
e=(a-1000*b-100*c-10*d);
f=b+c+d+e;
} /*少了大括号*/
if(f%2==0)
printf("各位之和是%d为偶数\n",f); /*不是四位数,同样要进行输出,而输出的是垃圾值所以上面用个循环重新输入*/
else printf("各位之和是%d为奇数\n",f); /*同上*/
break;
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
else没加括号哈:
#include "stdio.h"
int main (void)
{ int a,b,c,d,e,f;
scanf("%d",&a); /输入一个四位数/
if (a<1000||a>9999) /判断是否为四位数/
printf("不是四位数,错误\n");
else
{
b=a/1000;
c=(a-1000*b)/100;
d=(a-1000*b-100*c)/10;
e=(a-1000*b-100*c-10*d);
f=b+c+d+e;
if(f%2==0)
printf("各位之和是%d为偶数\n",f);
else printf("各位之和是%d为奇数\n",f);
}
return 0;
}
#include "stdio.h"
int main (void)
{ int a,b,c,d,e,f;
scanf("%d",&a); /输入一个四位数/
if (a<1000||a>9999) /判断是否为四位数/
printf("不是四位数,错误\n");
else
{
b=a/1000;
c=(a-1000*b)/100;
d=(a-1000*b-100*c)/10;
e=(a-1000*b-100*c-10*d);
f=b+c+d+e;
if(f%2==0)
printf("各位之和是%d为偶数\n",f);
else printf("各位之和是%d为奇数\n",f);
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-04-18
展开全部
#include "stdio.h"
int main (void)
{ int a,b,c,d,e,f;
scanf("%d",&a); /输入一个四位数/
if (a<1000||a>9999) /判断是否为四位数/
printf("不是四位数,错误\n");
else
{
b=a/1000;
c=(a-1000*b)/100;
d=(a-1000*b-100*c)/10;
e=(a-1000*b-100*c-10*d);
}
f=b+c+d+e;
if(f%2==0)
printf("各位之和是%d为偶数\n",f);
else printf("各位之和是%d为奇数\n",f);
return 0;
}
问题在于else之后的各句少了个{}将那些要一起执行的语句包含起来。按照你原来的程序,如果不是四位数的话则只有b=a/1000;没有被执行,错就在于此!
int main (void)
{ int a,b,c,d,e,f;
scanf("%d",&a); /输入一个四位数/
if (a<1000||a>9999) /判断是否为四位数/
printf("不是四位数,错误\n");
else
{
b=a/1000;
c=(a-1000*b)/100;
d=(a-1000*b-100*c)/10;
e=(a-1000*b-100*c-10*d);
}
f=b+c+d+e;
if(f%2==0)
printf("各位之和是%d为偶数\n",f);
else printf("各位之和是%d为奇数\n",f);
return 0;
}
问题在于else之后的各句少了个{}将那些要一起执行的语句包含起来。按照你原来的程序,如果不是四位数的话则只有b=a/1000;没有被执行,错就在于此!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询