试题描述:小明同学想将自己的零花钱存起来,捐献给贫困地区的同龄人。为了方便记录自己存钱的总数,于是,当他存的钱满10元,他就去换取一张10元的纸币;当满100元,他就换取一张100元的纸币,当满1000元,他就将10张100元纸币放在一起...。为了方便统计,小明构建了一个由正整数组成的数组,数组中每个元素都只存储当个数字。小明存储的零花钱的最高为放在数组的首位,最低位放在数组的末尾。现在他刚获得了1元的零花钱,想将其存起来,那么,如何表示小明现在存储的零花钱呢?
输入描述:由正整数构成的且每个元素都只存储单个数字的数组(输入用字符串表示,半角逗号分隔,自己转成整形数组)。
输出描述:由正整数构成的且每个元素都只存储单个数字的数组。
输入:
2,4,9
输出:
2,5,0
#include <stdio.h>
int top,S[100];
//入栈
void push(int x){
S[++top]=x;
}
//出栈
int pop(){
top--;
return S[top+1];
}
//将数组转换成整数
int convert(int a[],int n) //n为数组元素个数
{
int i,sum;
for(i=0,sum=0;i<n;i++)
{
sum*=10;
sum+=a[i];
}
return sum;
}
//正序打印整数每一位
void print(int n)
{
while(n!=0){
push(n%10);
n/=10;
}
while(top!=1){
printf("%d,",pop());
}
printf("%d\n",pop());
}
int main()
{
//freopen("input.txt","r",stdin);
int c,i=0,a[100];
int temp=0;
top=0;
while((c=getchar())!=EOF){
if(c!=','){
a[i++]=c-48;
}
}
temp=convert(a,i)+1;
print(temp);
return 0;
}