强强不败 发表于 2008-9-6 21:57

看看

#include <Stdio.h>
main()
{
      int a,b;
      printf ("请输入整型变量A的值\n");
      scanf ("%d",&a);
      printf ("请输入整型变量B的值\n");
      scanf ("%d",&b);
      printf ("A的值%d+B的值%d=%d\n",a,b,a+b);
      getch();
      }
----
为什么A的值输入字符型程序就出错并终止执行,怎样是输入字符时,程序要求重新输入?

yuyangtian1000 发表于 2008-9-6 22:11

你用的是TC2.0或者是WIN-TC是不支持中文的所以不要用
请输入整型变量A的值
这种东西

yuyangtian1000 发表于 2008-9-6 22:13

你的A都写明了是int型为什么要输入字符型??

qfyzy 发表于 2008-9-6 22:28

%d是不可能接受字符的。
建议好好看看书。

cosdos 发表于 2008-9-6 23:04

[font=新宋体]#include <stdio.h>
#include <conio.h>

int main(void)
{
    int a, b, k;

    do {
        printf ("请输入整型变量A的值\n");
        k = scanf ("%d", &a);
        while(getchar() != '\n');   // 清空输入流中的字符
    }while(k != 1);
   
    do {
        printf ("请输入整型变量B的值\n");
        k = scanf ("%d", &b);
        while(getchar() != '\n');   // 清空除输入流中的字符
    }while(k != 1);
   
    printf ("A的值%d+B的值%d=%d\n", a, b, a + b);
   
    getch();
    return 0;
}[/font]

[[it] 本帖最后由 cosdos 于 2008-9-6 23:06 编辑 [/it]]

强强不败 发表于 2008-9-7 13:36

回复 3# yuyangtian1000 的帖子

假入输错了,这样的话程序关闭了,那就没达到要求
我现在问的事怎样当输入字符型时,可以重新输入

lingyu 发表于 2008-9-7 15:50

#include <stdio.h>
int main(void)
{
   char a=0,b=0;
   printf("please input two num A and B:");
   scanf("%c%c",&a,&b);
   if(a<48||a>56||b<48||b>56)
  {
     printf("\nplease input again:");
     scanf("%c%c",&a,&b);
  }
  getchar();
  return 0;
}
写完运行了,没问题。。

页: [1]

编程论坛