输入:
1 2
结果:
3
说明:只能输入数字,两数间只有一个空格
代码如下:(vc6编译)
#include#include 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\n",fir[1]); //printf("%d\n",sec[1]); printf("请输入:\n"); while((input=getch()) != '\r'){ printf("%c",input); if(input == ' '){ flag++; }else if(input < 48 || input > 57){ //只允许输入数字 printf("\n输入格式不对,只允许输入数字!\n"); return; }else{ if(flag == 0){ fir[firIndex] = (int)input - 48; //字符转数字 firIndex++; }else if(flag == 1){ sec[secIndex] = (int)input - 48; secIndex++; }else{ printf("\n空格输入过多,只允许一个空格出现!\n"); return; } } } maxFirIndex = --firIndex; maxSecIndex = --secIndex; firIndex--; secIndex--; //printf("\nfirIndex:%d,maxFirIndex:%d\n",firIndex,maxFirIndex); //printf("secIndex:%d,maxSecIndex:%d\n",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("\n和:\n"); printf("%d\n",sum);}
运行如下: