问题描述:用户输入一个整数,要求用一个数组将整数的每一位存入到数组元素当中,最后输出用户输入的整数+1。
例:用户输入:99
输出:100
下面写实现方法:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
int i;
int num;
printf("输入数字的位数:");
scanf_s("%d", &num);
int a[99];
a[0] = 0; //使数组首元素等于0
for (i = 1; i <= num; i++){ //给数组元素赋值
printf_s("输入第%d位数:", i);
scanf_s("%d", &a[i]);
}
a[num] += 1; //使整数的最后一位+1
for (i = num; i > 0; i--){ //如果碰到9,则进位
if (a[i] == 9){
a[i] = 0;
a[i - 1] += 1;
}
else if (a[i] == 10){
a[i] = 0;
a[i - 1] += 1;
}
}
if (a[0] == 0){ //判断首位是不是0
for (i = 1; i <= num; i++){ //不是则从数组的第二个元素输出
printf("%d", a[i]);
}
}
else{ //是则从首位输出
for (i = 0; i <= num; i++){
printf("%dt a[i]);
}
}
getchar();
getchar(); //使程序暂停
return 0;
}
下面为程序运行结果