编程输入一个整数,从高位开始逐位分割并输出它的各位数字 才学,求帮忙改一下

#include "stdio.h"
#include "math.h"
void main ()
{
int a,b=0,c,d;
printf("input the a:");
scanf("%d",&a);

while (a!=0)
{
a=a/10;
b=b++;
}

c=pow(10,b);
scanf("%ld",&c);
do
{
d=a/c;
printf("%d\n",d);

d=a%c;
c=c-1;

}
while(d!=0);
printf("\n");
}

1、首先,定义三个整型变量,保存整数、各位上的数、整数的位数。

2、给整型变量p和sum,赋初值为0。

3、读入一个整数,保存在变量n中。

4、用while语句判断,n是否等于0,如果不等于0则执行语句体。

5、对整数n用10求余,余数保存在变量p中,即为各位上的数字。

6、改变整数变量n的值,使其成为原来的十分之一,即减少一位。

7、统计整数位数的变量sum自加1,实现位数的统计。

8、运行程序,输入一个整数后,计算机倒序输出各位上的数字,并且输出整数的总位数。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-25
#include<stdio.h>
int main()
{
int i=0,n,a[12];
scanf("%d",&n);
while(n)
{
a[i++]=n%10;
n/=10;
}
for(n=0;n<i;n++)
printf("%d",a[n]);
printf("\n");
return 0;  
}

 

如果没学数组的话:
#include<stdio.h>
#include<math.h>
int main()
{
int i=0,n,t;
scanf("%d",&n);
t=n;
while(t)
{
i++;//计算位数
t/=10;
}
while(i--)
{
printf("%d",n/(int)pow(10,i));//从高位开始输出
n=n%(int)pow(10,i);//去掉高位
}
printf("\n");
return 0;  
}

本回答被提问者采纳
第2个回答  2019-04-06
#include<stdio.h>
#include<math.h>
int main(void)
{
int a,b,c,d,i;
scanf("%d",&a);//输入4321
if(a==0){
printf("0 ");
}
else{
while(a!=0){i=-2; //4321满足
b=a*10;//此条语句不循环 //b=43210 //b=3210
//循环输出a的最高位
//实际上是b的最高为
while(b!=0){
//求出a的最高位c
c=b;
b=b/10;
// printf("%d\n",c);
i++;
}
printf("%d ",c); //输出4 //输出3
//接下来实现求出a的次高位
//剩下的部分是a-c*10的i次方

a=a-pow(10,i)*c; //a=321 //a=21
//printf("%d\n",a); //输出321
}
}
return 0;
}
第3个回答  2019-05-24
你好!以下是我编译的程序,希望对你有帮助!
#include <stdio.h>
int main (void)
{
long long int n;
int i = 0, a[1000], j = 0, t = 0;
scanf ("%lld",&n);
if(n<0)
printf("error!");
if(n==0)
printf("0 ");
while (n)
{
a[j++] = n % 10;
n /= 10;
}
for (i = j - 1; i >= 0; i--)
{
printf ("%d ",a[i]);
}

return 0;
}
以上程序编译是正确的,如果对你有帮助,请采纳!谢谢!
第4个回答  2014-04-01

#include<iostream>
using namespace std;

void showNumber(int a);

void main()
{
 int num = 0;
 cout<<"Please enter a number:";
 cin>>num;
 showNumber(num);
}

void showNumber(int a)
{
 while((a/10)!=0)
 {
  int b = a%10;
  cout<<b<<endl;
  a = a/10;
 }
 cout<<a<<endl;
}

是这个意思吗

追问

最高位到最低位,你那个完全看不懂啊,不过谢谢了,能以初学者的方式改改吗
3
4
2
3
4

追答

#include<iostream>
using namespace std;

void showNumber(int a);

void main()
{
 int num = 0;
 //cout<<"Please enter a number:";
 printf("Please enter a number:");
 //cin>>num;//input number
 scanf("%d",&num);
 showNumber(num);//print the number
}

void showNumber(int a)
{
 int c = 10;
 while((a/c)!=0)
 {
  c = c*10;
 }
 c = c/10;
 while(c>1)
 {
  int b = a/c;
  //cout<<b<<endl;
  printf("%d\n",b);
  a = a%c;
  c = c/10;
 }
 //cout<<a<<endl;
 printf("%d\n",a);
}

相似回答