回 帖 发 新 帖 刷新版面

主题:第一次试写的,有个小问题

为什么我的这个输入的数字一大就出错呢?
如输入9999999999它就认成其他的数了
那位大大能告知一二,
谢谢了




#include"stdio.h"
void main()
{
 long int a1,a2,a3,a4,a5;
 char ch,ch1;
 printf("一次性加减乘除计算器");
 scanf("%d%c%d%c",&a1,&ch,&a2,&ch1);
 switch(ch)
 {
  case '+':
      a3=a1+a2;
      printf("%d+%d=%d\n",a1,a2,a3);
      break;
  case '-':
      a3=a1-a2;
      printf("%d-%d=%d\n",a1,a2,a3);
      break;
  case '*':
      a3=a1*a2;
      printf("%d*%d=%d\n",a1,a2,a3);
      break;
  case '/':
      a3=a1/a2;
      printf("%d/%d=%d\n",a1,a2,a3);
      break;
  default:
      printf("输入错误或不支持此功能\n");
    
 }
       for(;;)
       {
           scanf("%c%d%c",&ch,&a4,&ch1);
             switch(ch)
              {
           case '+':
               a5=a3+a4;
              printf("%d+%d=%d\n",a3,a4,a5);
               break;
          case '-':
              a5=a3-a4;
              printf("%d-%d=%d\n",a3,a4,a5);
              break;
          case '*':
              a5=a3*a4;
              printf("%d*%d=%d\n",a3,a4,a5);
              break;
          case '/':
              a5=a3/a4;
              printf("%d/%d=%d\n",a3,a4,a5);
              break;
          default:
              printf("输入错误或不支持此功能\n");
              break;
           
               }
                   a3=a5;        

        }
  }

回复列表 (共2个回复)

沙发

数据过大溢出了。
表示范围(32位系统)
long int:-2^31 ~ 2^31 - 1 => -2147483648 ~ 2147483647
char    : -2^7 ~  2^7 - 1  => -128 ~127

板凳

case语句应该上个括号吧

我来回复

您尚未登录,请登录后再回复。点此登录或注册