C语言问题,题目:输入一个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语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

#include
int main(void)

{
long int x;
int y,i=1;
printf("请输入一个不超过100000的整数:"); // <------请把,x去掉
scanf("%ld",&x);
if (x>99999||x<1) printf("你所输入的数据超出计算范围
");
else
{
while (x!=0) // <------请把 do 去掉
{
y=x%10;
printf("%d",y);
x=x/10;
i=i+1;
}

printf("
这个数共有%d位
",i);
}
return 0; // <------这里return 0;放最外层计较好
}

这么个题目能被你写出这么多代码来,我先看看有什么错,给你个简单点的,还多于5位
#include<stdio.h>
int main()
{
int n, len=0;
int a[11];
scanf("%d",&n);
while(n)
{
a[len]=n%10;
len++;
n/=10;
}
printf("%d位数\n每一位是:",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请按任意键继续. . .

main ()
{
long int a;
int b,c,d,e,f;
scanf("%ld",&a);
while(a>=1&&a<=99999)
{
if(a/10000>=1&&a/10000<10)
{
printf("this is 5 steps\n");
b=a/10000;
c=(int)((a-b*10000)/1000);
d=(int)((a-b*10000-c*1000)/100);
e=(int)((a-b*10000-c*1000-d*100)/10);
f=a-b*10000-c*1000-d*100-e*10;
printf("b=%d c=%d d=%d e=%d f=%d",b,c,d,e,f);break;}
else if(a/1000>=1&&a/1000<10)
{
printf("this is 4 steps\n");
b=(int)(a/1000);
c=(int)((a-b*1000)/100);
d=(int)((a-b*1000-c*100)/10);
e=a-b*1000-c*100-d*10;
printf("b=%d c=%d d=%d e=%d",b,c,d,e); break; }
else if(a/100>=1&&a/100<10)
{ printf("this is 3 steps\n");
b=(int)(a/100);
c=(int)((a-b*100)/10);
d= a-b*100-c*10;
printf("b=%d c=%d d=%d",b,c,d); break; }
else if(a/10>=1&&a/10<10)
{ printf("this is 2 steps\n");
b=(int)(a/10);
c=a-b*10;
printf("b=%d c=%d",b,c); break; }
else if(a>=1&&a<10)
{ printf("this is 1 step\n");
printf("a=%d",a); break; }
}
getch();

}
这样就可以了。注意if 和else if 的区别

这样写比较简单,而且输出格式和你一样
#include <stdio.h>
void main()
{
int n, l = 0; //l记录长度
int a[5]; //存放五位数
char ch;
scanf("%d", &n);
for (int i = 0; i < 5; i++)
{
a[i] = n % 10;
if (n > 0)
l++;
n /= 10;
} //将五位数一一截出并求出长度
printf("this is %d step\n", l);
if (l > 0)
printf("a=%d", a[l-1]); //第一位输出无空格
ch = 'a';
for (int i = l - 2; i >= 0; i--)
{
ch++; //ASCII码加一,'a' + 1 = 'b';
printf(" %c=%d", ch, a[i]); //以后输出前带空格
}
}
有看不懂的可以问我

#include<stdio.h>
main()
{
int a;
int b,c,d,e,f;
scanf("%d",&a);
while(a>=1&&a<=99999)
{
if(a/10000>=1&&a/10000<10)
{
printf("this is 5 steps\n");
b=(int)(a/10000);
c=(int)((a-b*10000)/1000);
d=(int)((a-b*10000-c*1000)/100);
e=(int)((a-b*10000-c*1000-d*100)/10);
f=a-b*10000-c*1000-d*100-e*10;
printf("b=%d c=%d d=%d e=%d f=%d",b,c,d,e,f);break; }
if(a/1000>=1&&a/1000<10)
{
printf("this is 4 steps\n");
b=(int)(a/1000);
c=(int)((a-b*1000)/100);
d=(int)((a-b*1000-c*100)/10);
e=a-b*1000-c*100-d*10;
printf("b=%d c=%d d=%d e=%d",b,c,d,e); break; }
if(a/100>=1&&a/100<10)
{ printf("this is 3 steps\n");
b=(int)(a/100);
c=(int)((a-b*100)/10);
d= a-b*100-c*10;
printf("b=%d c=%d d=%d",b,c,d); break; }
if(a/10>=1&&a/10<10)
{ printf("this is 2 steps\n");
b=(int)(a/10);
c=a-b*10;
printf("b=%d c=%d",b,c); break; }
if(a>=1&&a<10);
{ printf("this is 1 step\n");
printf("a=%d",a); break; }
}

getchar();
}
getch();改为getchar,加上头文件#include<stdio.h>

#include<stdio.h>
#include<string.h>
void main()
{
char a[5];
int i;
printf("请输入一个正整数:\n");
gets(a);
printf("这是一个%d位数\n",strlen(a));
printf("各个位上的数为:\n");
for(i=0;i<strlen(a);i++)
printf("%d\t",a[i]-'0');
printf("\n");
}

如果你想求更多位数的话,直接把 char a[5],定义更大就可以了。


C语言题目。输入半径求球的体积。输出结果是六位数。保留两位小数。麻烦...
include <stdio.h> define pi 3.1416 main(){ float v,r;printf("输入球的半径\\n");scanf("%f",&r);v=(4.0\/3)*pi*(r*r*r); \/\/这里出错了,不是两个==,还有就是4\/3=1要改为4.0\/3 printf("球的体积为%6.2f",v);} ...

c语言问题,先输入一个整数n代表要输入的字符串的个数,题目是输入入一串...
在scanf("%d",&n);后面加上getchar();来读取输入的Enter键,不然会被gets (a);读取。#include <stdio.h>#include <string.h>int main(){ char a[550];int i,j,n;scanf("%d",&n);getchar();for (j=0;j<n;j++){ gets (a);printf("%c",a[0]-32);for (i=1;i<strlen...

C语言问题,字符串、数组.下面三个题目输出的分别是什么?
三个都是错误的,都有有语法错误,编译都过不了!char str的str前少了个*。改错后输出yes!。char str的str后少了一对[],且在{}中的'!'后少了,'\\0',改错后输出yes!。define...后面多了分号。若无分号,输出yes!。

c语言题目:从高位开始逐位输出一个整数的各位数字:输入一个整数,从高...
导致死循环。 i*=10; } while(m>0){ n=m\/i; \/\/不要改变m值, 用n存储 m=m-n*i; i\/=10; printf("%d\\n",n); } return 0; }问题不少 算法上 最大的问题是pow返回的是double类型,转为int可能是不准确的。在你算法基础上 最小改动 修改成这样。其实...

C语言的题目,规定输入的字符只包含字母和*号。请编写函数fun,功能是:将...
1、其实头函数每个都需要用到的就是#include <stdio.h>.在这儿给大家说的就是这里需要添加一个字符串函数,因为程序里面涉及到了输出和输入字符串以及字符。#include <string.h>。2、定义两个相同容量的字符串储存的变量 char a[100]; char b[100];。以及整数变量 int c; int i=0,j=0; ...

关于C语言编程的问题。题目要求输入一个英文句子,单词之间用空格号隔...
你是想用word来做标志位?来判断是字母还是别的字符?for后面多了一个;分号 include<stdio.h> void main(){ char a[100],c;int i,word=0,num=1;gets(a);for(i=0;(c=a[i])!='\\0';i++){ if(c==' ')word=0;else continue;if(word==0){ word=1;num++;} } printf("%d\\...

C语言 问题 E: 输出< >间的信息?
include <stdio.h> include <string.h> int main() { char s[105];while (fgets(s, 101, stdin) != NULL) { if (s[strlen(s) - 1] == '\\n') { s[strlen(s) - 1] = '\\0';} int i, j, k, n;for (i = n = 0; s[i] != '\\0';) { while (s[i] != '<...

c语言问题,检查没问题,执行等于没执行 题目 输入年份和月份,求该月有...
include <stdio.h> int main(int argc, constchar * argv[]){ int year = 0,month = 0;printf("请输入当前年份和月份,中间用逗号隔开:\\n");scanf("%d,%d",&year,&month);if(month==2){ if((year%4==0 && year%100!=0)||(year%400==0))printf("29");else printf("28")...

c语言题 输入一个5行4列的二维数组,求各行元素之和并将这些和按从小到...
2016-06-02 C语言 1、由程序随机产生一个5行7列的二维数组A并显示 ,... 9 2014-07-22 C语言编程 输入一个5行6列的二维数组,求该数组每列元素之和... 5 2013-11-20 C语言~输入5行4列的整型二维数组,按每行的和值从小到大排序... 1 2016-06-15 c语言问题 题目要求输入10元素数组 并按从小...

C语言题目描述: 从键盘上输入一个小写字母,然后将小写字母装换成大写...
可以参考下面的代码:include <stdio.h> void main(){ char ch;scanf("%c",&ch);if(ch>='A'&&ch<='Z'){ ch=ch+32;printf("%c\\n\\n",ch);}else{ printf("%c\\n\\n",ch);} }

措美县19235247036: C语言问题,题目:输入一个5位数以内的正整数,要求输出这是个几位数?每一位分别是多少?
辉沫立静:#include<stdio.h> void main() { int a=0,b=0,c=0,d=0,e=0; long int aa; scanf("%ld",&aa); while(aa>=100000) { printf("shu ru cuo \n"); printf("qing shu ru yig bu duo yu 5wei de shu\n"); scanf("%ld",&aa); } if(aa>=10000) { a=aa/10000; b=(aa-...

措美县19235247036: c语言试题及答案拜托了各位 谢谢1、输入一个五位整数,将它反向输出.例如输入12345,输出应为54321.(15分) 2、用两种循环结构分别编程计算1+2+3... -
辉沫立静:[答案] 第一题 #includevoid fun(int a){ if(a解析看不懂?免费查看同类题视频解析查看解答

措美县19235247036: c语言问题求助 求思路输入一个不多于5位数的正整数,要求:①求出它是几位数?②分别打印出每一位上的数字;③按逆序打印出该数字;④能够处理负数... -
辉沫立静:[答案] #include "stdio.h" void main() { char str[100]; int i; gets(str); printf("长度为%d\n",strlen(str)); for(i=0;iprintf("%-2c",str[i]); printf("\n"); for(i=strlen(str)-1;i>=0;i--) printf("%c",str[i]); } 这个可以满足要求

措美县19235247036: C语言程序 输入一个5位数,判断他是不是回位数 -
辉沫立静: #include<stdio.h> int main () {long a;printf("请输入一个无位数:");scanf("%ld",&a);if(a/10000==a%10&&a/1000%10==a%100/10)printf("%d是回文数\n",a);elseprintf("%d不是回文数\n",a);return 0; }

措美县19235247036: 求一个c语言程序要求输入一个五位数逆序输出末尾的零不输出例如:输入1000,输出1 -
辉沫立静: 楼主你好 具体代码如下: #include<stdio.h> int main(){int n;printf("Enter n:");scanf("%d",&n); while(n){if(n%10)printf("%d",n%10);n/=10;}printf("\n");return 0;}希望能帮助你哈

措美县19235247036: 输入一个五位的正整数,求各位数字之和 怎么用C语言写 -
辉沫立静: #include<stdio.h> main() {int a,b,c,d,e,n;printf("请输入一个五位数:");scanf("%d",&n);a=n/10000;n=n%10000;b=n/1000;n=n%1000;c=n/100;n=n%100;d=n/10;n=n%10;e=n;printf("五个位数之和为:%d\n",a+b+c+d+e); } 这个答案够简单了吧,一目了然!!!

措美县19235247036: 用C语言编程,“输入一个五位数,由组成这个五位数的五个数字重新组成一个数使其最大. -
辉沫立静: 先把这个五个数拆成放到数组里,再后再排序,然后就是把排序的数组元素再排成一个数

措美县19235247036: C语言:输入一个五位数的正整数,按顺序输出组成该整数的各个数字. -
辉沫立静: 随便码了一个最简单的,有需求再追问#includeint main(){ int dat[5]; printf("Please Enter 5 Data\n"); scanf("%d,%d,%d,%d,%d",&dat[0],&dat[1],&dat[2],&dat[3],&dat[4]); printf("%d,%d,%d,%d,%d",dat[4],dat[3],dat[2],dat[1],dat[0]); getch(); return 0;}希望能帮助你.

措美县19235247036: 用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);...

措美县19235247036: C语言编程:对于输入的一个五位数,求出其每位上的数字,并输出,每两位之间用空格隔开. -
辉沫立静: 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) ...

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