一个简单的小程序,求帮忙

baiye1134 2010-04-22 10:47:08
编写一个程序,输入一个整数 ,逐位地输出整数的十进制数值,要求位与位之间有一个空格符分隔。
我不大明白 这题目 是什么意思。
不知道是不是是输入一个234,最后显示的是 2 3 4 。
可若是这样。程序又该怎么编呢?
...全文
195 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sunday 2010-04-22
  • 打赏
  • 举报
回复
这个更具有通用性,看一下吧,希望对你有点帮助

#include<iostream>
using namespace std;
void A(int n)
{
int length=0;//记录数字的位数,
int i=0;
int a[300];
while(n>0)
{
length++;
a[i++]=n%10;
n=n/10;

}

for(i=length-1;i>=0;--i)
printf("%d ",a[i]);
printf("\n");
}
int main()
{
A(123);
return 0;

}
boych 2010-04-22
  • 打赏
  • 举报
回复
当然用C++中的string那是相当的简单
boych 2010-04-22
  • 打赏
  • 举报
回复

#include <stdio.h>
int main()
{
long n;
printf("Enter a number: \n");
scanf("%d",&n);
int a[20], digitCnt = 0, i = 0;
while(n) {
a[digitCnt] = n % 10;
n = (n - a[digitCnt])/10;
++digitCnt; //计算位数
}
for(i = digitCnt - 1; i >= 0; --i)
printf("%d ",a[i]);//顺序输出
printf("\n");
return 0;
}

等待等待等待 2010-04-22
  • 打赏
  • 举报
回复


#include <iostream>
#include<string>
using namespace std;

int main()
{
string line;
getline(cin,line);
for(int i=0;i!=line.size();++i)
{
cout<<line[i]<<" ";
}
cout<<endl;
return 0;
}
cjl701 2010-04-22
  • 打赏
  • 举报
回复
学习。我认为求余。
selooloo 2010-04-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 baiye1134 的回复:]
引用 6 楼 selooloo 的回复:
C/C++ code

#include <stdio.h>

void output(int n)
{
if(n==0) return;
output(n/10);
printf("%d ",n%10);
}
int main(void)
{
int n;

scanf("%d",&amp;n);
o……


……
[/Quote]
printf("%d ",n%10);%d后面有个空格,getchar()没用,忘删了
qingtian6174 2010-04-22
  • 打赏
  • 举报
回复
用while循环更好些
while(n/10!=0)
空格输出可以再输出语句中直接输出:
printf("%d ",a[]);
用数组存储各个数值。
huanmie_09 2010-04-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 baiye1134 的回复:]
引用 6 楼 selooloo 的回复:
C/C++ code

#include <stdio.h>

void output(int n)
{
if(n==0) return;
output(n/10);
printf("%d ",n%10);
}
int main(void)
{
int n;

scanf("%d",&amp;n);
o……


……
[/Quote]
printf("%d ",n%10); -->控制串%d后面有个空格, 在控制台下就能打印出一个空格.
baiye1134 2010-04-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 selooloo 的回复:]
C/C++ code

#include <stdio.h>

void output(int n)
{
if(n==0) return;
output(n/10);
printf("%d ",n%10);
}
int main(void)
{
int n;

scanf("%d",&n);
o……
[/Quote]

这个我倒是看懂了,不过想问一下啊,那个空格符是在哪里你给它打出来的?
最后面的getchar()?
AtlasHR 2010-04-22
  • 打赏
  • 举报
回复
nb[Quote=引用 6 楼 selooloo 的回复:]
C/C++ code

#include <stdio.h>

void output(int n)
{
if(n==0) return;
output(n/10);
printf("%d ",n%10);
}
int main(void)
{
int n;

scanf("%d",&n);
o……
[/Quote]
baiye1134 2010-04-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 rpbear 的回复:]
我就当成是不超过65536处理一下,楼主自己修改

C/C++ code

1 #include<stdio.h>
2
3 int main(){
4 int n;
5 char buf[10];
6
7 scanf("%d",&n);
8 sprintf(buf,"%d",n);
9
1……
[/Quote]
哇。。我看不懂啊。。汗、、
selooloo 2010-04-22
  • 打赏
  • 举报
回复

#include <stdio.h>

void output(int n)
{
if(n==0) return;
output(n/10);
printf("%d ",n%10);
}
int main(void)
{
int n;

scanf("%d",&n);
output(n);
getchar();
getchar();
return 0;
}
huanmie_09 2010-04-22
  • 打赏
  • 举报
回复
当成字符串来处理:

#include<stdio.h>
#include<string.h>
void main()
{
char str[80];
void insert(char str[]);
printf("input four digits:");
scanf("%s",str);
insert(str);
}

void insert(char str[])
{
int i,t;
char s[80];
t=strlen(str);
for(i=0;i<t;i++) {
s[2*i] = str[i];
s[2*i+1] = ' ';
}
s[2*i-1] = '\0';
strcpy(str, s);
printf("output:\n%s\n",str);
}

todayq 2010-04-22
  • 打赏
  • 举报
回复
转换成字符串来做
rpbear 2010-04-22
  • 打赏
  • 举报
回复
我就当成是不超过65536处理一下,楼主自己修改

1 #include<stdio.h>
2
3 int main(){
4 int n;
5 char buf[10];
6
7 scanf("%d",&n);
8 sprintf(buf,"%d",n);
9
10 char *p = buf;
11 while(*p)
12 printf("%c ",*p++);
13 printf("\n");
14 return 0;
15 }
poppoo1986 2010-04-22
  • 打赏
  • 举报
回复
说错,是分别除以整千 整百 之类的。。
poppoo1986 2010-04-22
  • 打赏
  • 举报
回复
数是几位数确定不?如果确定 就分别用%取余。不确定还要判断下。
baiye1134 2010-04-22
  • 打赏
  • 举报
回复
嗯,谢谢大家
tianloveyou 2010-04-22
  • 打赏
  • 举报
回复
转成字符串来做,就容易多了
yiruirui0507 2010-04-22
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<string.h>

void insert(char str[]);

int main()
{
char str[80] = {0};

printf("input four digits:");
scanf("%s",str);
insert(str);
}

void insert(char str[])
{
int i,t;
t=strlen(str);
char str1[80];
for(i=0;i<t;i++)
{
str1[2*i]=str[i];
str1[2*i+1]=' '; /*输出空格*/
}
str1[2*i]='\0';
printf("output:\n%s\n",str1);
}
加载更多回复(3)

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧