c语言输入一个整数怎么分别输出它的每位上的数字

用函数解决,就是比如我输入4567,程序的输出就是4(接着是空格两个,以下同此)567我只学到函数而已下面是我自己做的可是输入一个三位数程序就错了为什么?#include... 用函数解决,就是比如我输入4567,程序的输出就是4(接着是空格两个,以下同此)5 6 7
我只学到函数而已 下面是我自己做的 可是输入一个三位数 程序就错了 为什么?
#include <stdio.h>
#include <math.h>

void F ( int n, int i);

int main()
{
int a,sum,k,j = 0;
printf("输入: ");
scanf("%d",&a);
k=a;
for( j = 0; sum != 0; j++ )
{
sum = k /10;
k = k /10;
}
printf("位数是多少: %d\n",j);
F( a,j );
system("pause");
return 0;
}

void F ( int n, int i)
{
int x,c = pow(10,i-1);
while ( n>0 )
{
x = n / c;
n = n % c;
c = c / 10;
printf("%d ",x);
}
}
展开
 我来答
天云小店
推荐于2017-09-07 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:778万
展开全部

可以通过除法运算符( / )和求余运算符( % )结合循环来实现分别输出一个整数的每位数字。


具体实现方法可以参考如下程序及注释说明:

#include<stdio.h>
void main()
{
    int data;
    int temp;
    printf("请输入一个整数:"); 
    scanf("%d", &data);  // 接收用户输入的整数,并赋值给变量data
    printf("%d从最低位到最高位分别为:", data);
    while(data>0)  // 当data=0或小于0时,退出循环,此时所以位数都已取出
    {
        temp = data % 10;   // 取出data的最低位
        printf("%d ", temp); // 输出最低位
        data /= 10;  // 将去掉data的最低位,次低位变为最低位
    }
}
秋天来了仔陈
推荐于2017-09-16 · TA获得超过2145个赞
知道小有建树答主
回答量:843
采纳率:0%
帮助的人:755万
展开全部
#include "stdio.h"
void main()
{
int a[10],n,i=0;
printf("请输入一个数:");
scanf("%d",&n);
while(n!=0)
{
a[i++]=n%10;
n/=10;
}
for(i--;i>=0;i--)
printf("%d ",a[i]);

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
entor210
2010-05-21 · TA获得超过116个赞
知道答主
回答量:33
采纳率:0%
帮助的人:0
展开全部
#include<stdio.h>
void main()
{
int a;
printf("\nEnter a data:");
scanf("%d",&a);
void fun(int );

fun(a);
}
void fun(int n)
{
int b[10],m;
for(m=0;n!=0;m++)
{
b[m]=n%10;
n=n/10;
}
for(m=m-1;m>=0;m--)
printf("%d ",b[m]);
printf("a;lfjkds ");

}

//也直接数字按字符格式输入
#include<stdio.h>
void main()
{
char a[80];
printf("\nEnter a data:");
gets(a);
void fun(char * );

fun(a);
}
void fun(char *a)
{
int n;
for(n=0;a[n]!='\0';n++)
printf("%3c",a[n]);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-05-21
展开全部
void output(int n)
{
int m=0;
for(int i=0;1;i++)
{
m=n;
m=m/pow(10.0,i);
if(m==0)
break;
m=m%10;
cout<<m<<" ";
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-05-21
展开全部
经过测试发现你的程序没有你说的问题,输入3位数时工作正常。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式