当前位置: 代码迷 >> C语言 >> 看看这个题如何做
  详细解决方案

看看这个题如何做

热度:148   发布时间:2006-08-08 09:44:58.0
看看这个题如何做
由键盘任意输入两个数,再进行判断,如果输入的不是数值,重新输入,如果是数值是进行相加,
我是这样做的总不能实现:
int sum;
char a, b;
sum=0;
printf("请输入两个整数:\n");
scanf("%c%c",&a,&b);
while ('a'<48 || 'b'>57){
printf("请输入两个整数:\n");
scanf("%c%c",&a,&b);
}
sum=a+b;
printf("sum=%d\n",sum);

[此贴子已经被作者于2006-8-8 12:30:00编辑过]

搜索更多相关的解决方案: 如何  

----------------解决方案--------------------------------------------------------
int sum;
char a, b;
sum=0;
printf("请输入两个整数:\n");
scanf("%c%c",&a,&b); //这样输入进来的只能是一位的整数,建议用%s
while ('a'<48 || 'b'>57){
printf("请输入两个整数:\n");
scanf("%c%c",&a,&b);
if
}
sum=a+b; //虽然前面已经过滤了不是整数的情况,但是现在的a,b都是asic码,要减去48
printf("sum=%d\n",sum);
----------------解决方案--------------------------------------------------------
但这条printf("请输入两个整数:\n");输出很多
----------------解决方案--------------------------------------------------------
你的程序一定要使用char型变量吗,如果是这样的话,你就必须使用字符串数组了,用循环比较的办法来判断是否为整数,然后再把数组的值转换成一个int型的常量进行运算!!
----------------解决方案--------------------------------------------------------
dou xie de shen m luan qi ba zao de, wo di er ci hai shu ru zi fu zen m ban??????

----------------解决方案--------------------------------------------------------
#include <setjmp.h>
#include <ctype.h>
#include <stdlib.h>
#include <stdio.h>

jmp_buf env;

int main(void)
{
char a, b;
int sum;

if (setjmp(env) != 0) {
printf("Enter a and b: \n");
getchar();
}

scanf("%c %c", &a, &b);

if (!isdigit(a) || !isdigit(b))
longjmp(env, 1);

sum = (a - '0') + (b - '0');
printf("sum = %d\n", sum);

exit(0);
}


----------------解决方案--------------------------------------------------------
#include<stdio.h>
int main()
{
int sum=0;
char a, b;
printf("请输入两个字符:\n");
scanf("%c%c",&a,&b);
while (!(a>='0'&&a<='9'&&b>='0'&&b<='9'))
{
printf("请输入两个整数:\n");
scanf("%c%c",&a,&b);
}
sum=a+b;
printf("sum=%d\n",sum);
return(0);
}

----------------解决方案--------------------------------------------------------
#include <stdio.h>
int main (void)
{
int a,b;
while (1)
{
printf ("enter two numbers\n");
if (2==scanf ("%d%d",&a,&b))
break;
else
fflush(stdin);
continue ;
}
printf ("%d+%d=%d\n",a,b,a+b);
return 0;
}
----------------解决方案--------------------------------------------------------
  相关解决方案