如何用C语言实现输入1个5位以内的正整数 分别输出每位数

作者&投稿:释征 (若有异议请与网页底部的电邮联系)
给定一个不多于5位的正整数,求它是几位数并且按逆序分别输出每一位数字的C语言程序如何编写?~

#include
int main()
{int x,x1,i,n,a[6]={0};
scanf("%d",&x);
x1=x;
for(n=0;x;n++)
{
a[n]=x%10;
x/=10;
}
printf("%d是%d位数
",x1,n);
for(i=0;i<n;i++)
printf("%d ",a[n-1-i]);
printf("
逆序输出是:");
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

这么个题目能被你写出这么多代码来,我先看看有什么错,给你个简单点的,还多于5位
#include
int main()
{
int n, len=0;
int a[11];
scanf("%d",&n);
while(n)
{
a[len]=n%10;
len++;
n/=10;
}
printf("%d位数
每一位是:",len);
for(n=len-1;n>=0;n--)
{
printf("%d ",a[n]);
}
}

你的没什么问题啊,你用什么编译器啊,不是16位的吧,如果是16位编译器,可能会有溢出
这个是我测试你的程序的结果:
87654
this is 5 steps
b=8 c=7 d=6 e=5 f=4请按任意键继续. . .

方法1:

main( )
{
long a,b,c,d,e,x;
scanf("%ld",&x);
a=x/10000;/*分解出万位*/
b=x%10000/1000;/*分解出千位*/
c=x%1000/100;/*分解出百位*/
d=x%100/10;/*分解出十位*/
e=x%10;/*分解出个位*/
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld ",e,d,c,b,a);
else if (b!=0) printf("there are 4, %ld %ld %ld %ld ",e,d,c,b);
else if (c!=0) printf(" there are 3,%ld %ld %ld ",e,d,c);
else if (d!=0) printf("there are 2, %ld %ld ",e,d);
else if (e!=0) printf(" there are 1,%ld ",e);
}

方法2:
main()
{
int a,b,i,j,n=1,t,s[6];
scanf("%d",&a);
b=a;
while(b/10>0)
{
n++;
b=b/10;
}
for(i=n;i>=1;i--)
{
t=1;
for(j=1;j<n;j++)
{t=t*10;}
s[i]=a/t;
}
for(i=1;i<=n-1;i++)
s[i]=s[i]-s[i-1]*10;
printf("%d",s[i]);
}

欢迎经常探讨此类问题!

方法1:

main( )
{
long a,b,c,d,e,x;
scanf("%ld",&x);
a=x/10000;/*分解出万位*/
b=x%10000/1000;/*分解出千位*/
c=x%1000/100;/*分解出百位*/
d=x%100/10;/*分解出十位*/
e=x%10;/*分解出个位*/
if (a,=0) printf("there are 5, %ld %ld %ld %ld %ld ",e,d,c,b,a);
else if (b,=0) printf("there are 4, %ld %ld %ld %ld ",e,d,c,b);
else if (c,=0) printf(" there are 3,%ld %ld %ld ",e,d,c);
else if (d,=0) printf("there are 2, %ld %ld ",e,d);
else if (e,=0) printf(" there are 1,%ld ",e);
}

方法2:
main()
{
int a,b,i,j,n=1,t,s[6];
scanf("%d",&a);
b=a;
while(b/10>0)
{
n++;
b=b/10;
}
for(i=n;i>=1;i--)
{
t=1;
for(j=1;j<n;j++)
{t=t*10;}
s[i]=a/t;
}
for(i=1;i<=n-1;i++)
s[i]=s[i]-s[i-1]*10;
printf("%d",s[i]);
}

欢迎经常探讨此类问题。

经本人验证:
一楼同志虽然有两种方法,但是第一个太繁琐,第二个不能运行
还有错误。二楼的方法就比较好了,程序简单易懂。
运行结果:输入 12345
结果 5 4 3 2 1

给你一个简单易懂的吧!
main()
{
long a,n;
printf("input a int number:");
scanf("%d",&a);
while(a>0)
{
n=a%10;
printf("%d ",n);
a=a/10;
}

}

第二种方法不错,简单易行


C语言输入输出操作由什么实现的
C语言本身没有输入输出的关键字,它的所有输入输出都是依靠标准函数库stdio实现。在使用标准函数库中的输入输出函数时,编译系统要求程序提供有关的信息(例如对这些输入输出函数的声明),#include<stdio.h>的作用就是用来提供这些信息的,stdio.h是C编译系统提供的一个文件名,stdio是“standard input &...

在C语言中如何实现用键盘输入一个字符串,并打印出来?
在C语言中输入字符串后然后打印出来的编程方法如下:1.首先需要先定义一个存放字符串的数组空间,如给字符串100个数组空间。2.接着使用gets()函数来获取键盘输入的字符串。一般格式为gets(定义的字符数组名)。3.然后再使用puts()函数来输出之前输入的字符串内容。一般格式puts(定义的字符数组名)。4....

C语言输入N个整数并求和的程序怎么写?
以下是一个简单的C语言程序,用于输入N个整数并求和:在这个程序中,我们首先定义了两个整型变量num和N,用于存储用户输入的数和数的个数。然后,我们使用printf函数输出提示信息,使用scanf函数从用户处读取数的个数N。然后,我们使用if语句检查N是否在有效范围内(大于0且小于或等于100)。如果N不在...

用C语言编程实现从键盘输入10个整数,求奇偶和?
以下是C语言代码,用于从键盘上输入10个整数,求这10个整数的奇数和及偶数和:```c include <stdio.h> int main(){ int num[10];int i, odd_sum = 0, even_sum = 0;\/\/ 输入10个整数 printf("请输入10个整数:\\n");for(i=0;i<10;i++)scanf("%d",&num[i]);\/\/ 计算奇数和...

怎么样用 C语言 做出 显示输入信息和录入信息?
第一种:如果你是想从写好的文件中读数据的话,那么使用这种方法 FILE *f1;if((f1=fopen("read.txt","r")==NULL){ cout<<"打开文件错误!"<<endl;exit(0);} char ch=fgetc(f1);while(ch!=EOF){ putchar(ch);ch=fgetc(f1);} fclose(f1);第二种:如果你是想在程序中动态的输入...

C语言输入两个数之间使用空格隔开还是使用逗号隔开
C语言输入两个数之间使用空格隔开还是使用逗号隔开主要取决于你在编写程序时你的scanf语句。具体的区别如下:1、使用scanf("%d,%d",&a,&b);语句进行输入:在输入数据时,两个数据中间需要加“,”,如“500,600”。2、使用scanf("%d%d",&a,&b);语句进行输入:在输入数据时,数据之间不可以用逗号...

C语言上中怎么样直接输入输出一个字符串
C语言中字符串的输入和输出主要有两种方式:输入使用:scanf("%s",a);对应的输出使用:printf("%s\\n",a);输入使用:gets(b);对应的输出使用:puts(b);字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s="a1a2···an"(n>=0)。它是编程语言中表示文本的数据类型。在...

我想知道用C语言怎么写一个控制键盘输入的程序,比如让键盘自动执行ctrl...
可以用普通的C语言来写。调用User32.lib 的函数:void keybd_event(BYTE bVirturalKey,BYTE bScanCode,DWORD dwFlags,DWORD dwExtraInfo)ctrl 键是 VK_CONTROL bScanCode = 0x9d shift键是 VK_SHIFT 0xaa 揿键是 0,0 键弹上来是:KEYEVENTF_KEYUP,0 例如simu_keyboard.c程序,模拟 Alt-Print...

用C语言编写程序:输入体重和身高,输出体重指数BMI
在C语言编程中,可以通过简单的代码实现输入用户的体重和身高,然后计算并输出BMI指数。BMI(Body Mass Index),作为衡量人体健康状况的重要工具,是通过体重(公斤)除以身高(米)的平方来得出的数值。它最初被设计为公共卫生研究中的统计标准,用来比较不同身高个体的体重对健康的影响,具有一定的参考...

在c语言中如何实现数组的动态输入?
另外,使用malloc或realloc申请时,需要先判断下返回值是否为空,如有异常申请失败,用空指针直接使用,会造成程序错误。下面简单示范:(初始申请2个字节,之后每次输入字符扩展1个字节,回车结束输入)include <stdio.h> include <malloc.h> int main(){ int len=2;char *a=NULL,*aSave=NULL,c;a...

青白江区15979184231: C语言编程:输入一个不超过5位的正整数, -
伯牙吾台石己酮: #include void main() { int n,i,a[10]; printf("请输入一个不超过5位的正整数:\n"); scanf("%d",&n); int sum=0; for(i=0;;i++) { a[i]=n%10;/*取余存于a[i]中*/ n=n/10; sum++;/*位数加一*/ if(n==0) break; } printf("它是%d位数\n",sum); int j; ...

青白江区15979184231: C语言编程:输入一个不超过5位的整数,计算其位数. -
伯牙吾台石己酮: #include<stdio.h> void main() {int n,i,a[10];printf("请输入一个不超过5位的正整数:\n");scanf("%d",&n);int sum=0;for(i=0;;i++){a[i]=n%10;/*取余存于a[i]中*/n=n/10;sum++;/*位数加一*/if(n==0) break;}printf("它是%d位数\...

青白江区15979184231: 输入一个不多于5位的数,输出每一位数字,C语言.用循环怎么做啊 -
伯牙吾台石己酮: #include<stdio.h> void main() { int x; scanf("%d",&x); while ( x ) { printf("%d ",x%10); x/=10; } printf("\n"); }

青白江区15979184231: 用C语言编程:给一个不多于5位的正整数,要求如下: -
伯牙吾台石己酮: #includeint main() { int a,b,c,d,e,p,n; scanf("%d",&n); if (n>9999) p=5; else if(n>999) p=4; else if(n>99) p=3; else if(n>9) p=2; else p=1; printf("位数:%d\n",p); a=n/10000; b=(int)(n-a*10000)/1000; c=(int)(n-a*10000-b*1000)/100; d=(int)(n-a...

青白江区15979184231: 输入一个不多于5位的正整数,求出它是个几位数,C语言设计 -
伯牙吾台石己酮:/* 120 120是3位数. 23 23是2位数. 2234565 2234565是7位数. q Press any key to continue */ #includeint main() {unsigned num,digits,t;while(scanf("%u",&num) == 1) {digits = 0;t = num;if(t == 0) digits = 1;else {while(t) {t /= 10;++digits;}}printf("%u是%d位数.\n",num,digits);}return 0; }

青白江区15979184231: c语言从键盘输入一个不多于5位的整数,要求:1计算他是几位数,2分别打印出每位数字,3逆序打印出各位数字 -
伯牙吾台石己酮: /* 请输入一个整数: 65539 这个数有5位.这个数是:65539,逆序输出是:93556 Press any key to continue*/#include <stdio.h> char *itoa(int n,char *s) { int i = 0; while(n) { s[i] = n%10 + '0'; n /= 10; i++; } s[i] = '\0'; printf("这个数有%d位.\n",i);...

青白江区15979184231: 用c语言编写一个程序要求输入一个5位数的整数,然后空3格依次输出.比如输入43786输出4 3 7 8 6 -
伯牙吾台石己酮: #include void main() { long num; int indiv,ten,hundred,thousand,ten_thousand,place; printf("请输入一个5位整数:"); scanf("%ld",&num); ten_thousand=(int)(num/10000); thousand=(int)(num%10000/1000); hundred =(int)(num%1000/100);...

青白江区15979184231: c语言输入一个不多于5位正整数要求:求出它是几位数;分别打印出每一位数字;按逆序输出各位数字. -
伯牙吾台石己酮: #include<stdio.h> int main() { int n,num=0,i,a[5],m; scanf("%d",&n); for(i=0;i<=4;i++) { if(n!=0) { m=n%10; a[i]=m; n=n/10; num++; } //上面这一块为了将数据存起来,后面好拿出来用 else break; } printf("%d\n",num); for(i=num-1;i>=0;i--) printf("%d ",a[i]); printf("\n"); for(i=0;i<num;i++) printf("%d ",a[i]);return 0; } 望采纳

青白江区15979184231: 给一个不多于5位的正整数 用C语言写出 -
伯牙吾台石己酮: 应该没有关系吧,如果是三位数,就不会输出b了.我也是初学者.switch语句中每种case都要加花括号吧 case 1:{printf("%d,%d,%d,%d,%d",a,b,c,d,e); printf("\n反序数字为:"); printf("%d,%d,%d,%d,%d",e,d,c,b,a); break;}

青白江区15979184231: 用c语言编写下面程序: 输入一个不大于5位的整数,输出其是几位数,倒序输出每一位数字. -
伯牙吾台石己酮: #include "stdio.h" void main() { int a,b,i; int s=0; printf("Input:"); scanf("%d",&a); b=a; while(a/10) { s++; a=a/10; } printf("This is a number with %d digits.\n",s); for(i=0;i<s;i++) { printf("%d\n",b%10); b=b/10; } }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网