编一个程序输入一个整型数据,输出每位数字,其间用逗号分隔。例如输入整数为2345,则输出应为2,3,4,5

又是一个难题,谢谢各位帮个忙!!

#include <stdio.h>
#include <string.h>
#include <iostream.h>
void main()
{
int a,i,k,j=0;
int b[20];
cout<<"输入一个整数:";
cin>>a;
i=a; //备份a。
while(i>9)
{k=i%10; //取余记入数组。
b[j]=k;
i=i/10; //i舍掉已经记入数组的末位。
j++;
}j--; //j加过头了一点。
cout<<i; //i已经小于10,最后这个数就是i。
for(;j>=0;j--)
cout<<","<<b[j];
cout<<endl;
getchar();
}

已经编译过,看似简单还是很玄妙的啊!!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-09-15
提供一个思路。。用栈
将输出整形数字赋值为X对10求余,余数入栈。X除以10并求整,结果重写X
重复此过程,到X小于10,X入栈
然后出栈,按照要求格式进行输出

这个思路怎么样?貌似程序长度更长一点,其实3楼思路最好。。
第2个回答  推荐于2016-09-11
#include<stdio.h>
void main()
{
int num,i;
char buf[50];
printf("请输入数字:");
scanf("%d",&num);
sprintf(buf,"%d",num);
for(i=0;buf[i+1]!='\0';i++)
printf("%c,",buf[i]);
printf("%c",buf[i]);
}本回答被提问者采纳
第3个回答  2009-09-14
#include"iostream"
using namespace std;
int main()
{
char a[100];
int l,i;
cin>>a;
l=strlen(a);
for(i=0;i<l;i++)cout<<a[i]-'0'<<",";
return 0;

}
相似回答