计算a+b

输入:

1 2

结果:

3

说明:只能输入数字,两数间只有一个空格

代码如下:(vc6编译)

#include <stdio.h>
#include <conio.h>

void main(){
    int fir[16]={0};    //保存输入的第一个数
    int sec[16]={0};    //保存输入的第二个数
    char input;
    int firIndex=0,secIndex=0;
    int flag = 0;        //判断空格数,只允许出现一个空格
    int sum = 0;
    int maxFirIndex = 0;    //第一个数最大下标
    int maxSecIndex = 0;    //第二个数最大下标
    int some = 1;            //用于从数的倒数第二位往前求和时每次自乘10
    //printf("%d
",fir[1]);
    //printf("%d
",sec[1]);
    printf("请输入:
");
    while((input=getch()) != '
'){
        printf("%c",input);
        if(input == ' '){
            flag++;    
        }else if(input < 48 || input > 57){        //只允许输入数字
            printf("
输入格式不对,只允许输入数字!
");
            return;
        }else{
            if(flag == 0){
                fir[firIndex] = (int)input - 48;    //字符转数字
                firIndex++;
            }else if(flag == 1){
                sec[secIndex] = (int)input - 48;
                secIndex++;
            }else{
                printf("
空格输入过多,只允许一个空格出现!
");
         return; } } } maxFirIndex
= --firIndex; maxSecIndex = --secIndex; firIndex--; secIndex--; //printf(" firIndex:%d,maxFirIndex:%d ",firIndex,maxFirIndex); //printf("secIndex:%d,maxSecIndex:%d ",secIndex,maxSecIndex); /* 计算第一个数的和,略过个位,从十位开始 */ for(;firIndex >= 0;firIndex--){ some *= 10; sum += fir[firIndex] * some; } some = 1; //重置 /* 计算第二个数的和,略过个位,从十位开始 */ for(;secIndex >= 0;secIndex--){ some *= 10; sum += sec[secIndex] * some; } /* 加上第一个数的个位 */ if(maxFirIndex > -1) sum += fir[maxFirIndex]; /* 加上第二个数的个位 */ if(maxSecIndex > -1) sum += sec[maxSecIndex]; printf(" 和: "); printf("%d ",sum); }

 运行如下:

原文地址:https://www.cnblogs.com/boluoboluo/p/6529085.html