解题思路:

在for循环中用getchar()接收输入的数字字符,并将其ASCII码赋值给temp(temp的数据类型为int),temp==10时(换行“\n”的ASCII码是10)判断输入结束跳出循环,未输入换行前则用count++统计位数,并将temp减48(字符0的ASCII码是48)后赋值给数组储存。
注意事项:

字符0的ASCII码是48,换行“\n”的ASCII码是10,输出第二行时最后一个数特殊处理。

参考代码:

#include <stdio.h>
int main()
{
    int i,count=0,x[5];             //count统计位数,x[5]储存数字
    for (i=0;i<5;i++)
    {
        int temp=0;
        temp=getchar();             //temp临时储存数字字符的ASCII码
        if (temp==10) break;      //输入换行\n后跳出for循环
        count++;
        x[i]=temp-48;               //字符0的ASCII码是48
    }
    printf("%d\n",count);
    for (i=0;i<=count-2;i++) printf("%d ",x[i]);
    printf("%d\n",x[i]);
    for (i=count-1;i>=0;i--) printf("%d",x[i]);
    return 0;
}


点赞(133)
 

0.0分

194 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 179 条评论

无心戏命 5年前 回复TA
#include<stdio.h>
int main()
{
    int a;
	int b,c,d,e,f;
	scanf("%d",&a);
	if(a>100000||a<0)
		printf("输入错误\n");
	else
	{
	    if(a/10000>=1)
			printf("5\n");
	    else if(a/1000>=1)
			printf("4\n");
		else if(a/100>=1)
			printf("3\n");
		else if(a/10>=1)
			printf("2\n");
		else if(a/1>=1)
			printf("1\n");

	}
	
	
		if(a>100000||a<0)
		printf("输入错误\n");
	else
	{
	    b=a/10000;
		c=a/1000%10;
		d=a/100%10;
		e=a/10%10;
		f=a%10;
		printf("%d %d %d %d %d\n",b,c,d,e,f);
		printf("%d%d%d%d%d\n",f,e,d,c,b);

	}
     return 0;

}
我们不一样,全都不一样。
贾晓聪 5年前 回复TA
@小郭的肛 while 里面 i 的判断和输出不对   while(i>=0){printf(x[--i]);}
胖胖 5年前 回复TA
#include <stdio.h>

int main(void) { 
int x,y,a,b,c,d,e;
scanf("%d",&x);
if (x/10000!=0) y=5;
else if (x/1000!=0) y=4;
else if(x/100!=0)y=3;
else if(x/10!=0)y=2;
else y=1;
printf("%d\n",y);
a=x/10000;
b=x/1000%10;
c=x/100%10;
d=x/10%10;
e=x%10;
printf("%d %d %d %d %d\n",a,b,c,d,e);
printf("%d%d%d%d%d",e,d,c,b,a);
	return 0;
}
啊哈 5年前 回复TA
#include<stdio.h>
int main()
{
    int a[5],b=0,i;
    char c;
    while((c=getchar())!='\n'&&b<5){
        a[b]=c-48;
        ++b;
    }
    printf("%d\n",b);

    for(i=0;i<b;i++){
        printf("%d ",a[i]);
    }
    printf("\n");
    for(i=b-1;i>=0;i--){
        printf("%d",a[i]);
    }
    printf("\n");

    return 0;
}
小郭的肛 5年前 回复TA
#include<stdio.h>

int main()
{
    int i,num,x[5],a;
    i=0;
    a=0;
    scanf("%d",&num);
    
    while(num>0)
    {
        x[i]=num%10;
        num=num/10;
        i++;
        a=i;
    }
    printf("%d\n",i);
    
    while(i<0)
    {
        printf("%d ",x[i]);
        i--;
    }
    printf("\n");
    
    while(a>i)
    {
        printf("%d",x[i]);
        i++;
    }
    
    return 0;
}

这么写问题在哪?求大神解释
ZZCC 5年前 回复TA
#include <stdio.h>

int main()
{
	int num,count,sum;
	scanf("%d",&num);
	sum = num;
	while(num!=0)
	{
		num/=10;
		count++;
	}
	if(sum==0)
	{
		printf("1\n");
		printf("%d\n",sum);
		printf("%d\n",sum);
	}
	else
	{
		switch(count)
		{
			case 1:
				printf("1\n");
				printf("%d\n",sum);
				printf("%d\n",sum);
				break;
			case 2:
				printf("2\n");
				int a1,a2;
				a1 = sum/10;
				a2 = sum%10;
				printf("%d %d\n",a1,a2);
				printf("%d%d\n",a2,a1);
				break;
			case 3:
				printf("3\n");
				int b1,b2,b3;
				b1 = sum/100;
				b2 = sum/10%10;
				b3 = sum%10;
				printf("%d %d %d\n",b1
harry 5年前 回复TA
int main()
{
    int n,b[];
    scanf("%d", &n)
    for(int i=0;i<n;i++)
    {
        scanf("%d",&b[i]);
    }
    for(int i=n;i=0;i--)printf("%d\n",b[i]);
    return 0;
}
我这里怎么错了?求助!!!
bsdh532 5年前 回复TA
@好大的鱼 只考虑了五位数的情况
luen 5年前 回复TA
#include <stdio.h>

int hanshu(int i, int n,int *p);
int main()
{
	int x[5];
	int i, n,s;
	s = 0; n = 0;
	for (i = 0; s!='\n'; i++) {
		
		scanf("%d", &x[i]);
		n++;
		s = getchar();
	}

	printf("%d\n", n);

	int *p = x;

	hanshu(i, n, p);

	return 0;
}


int hanshu(int i, int n,int *p) {

	for (i = 0; i < n ; i++) {
		if (i < n-1) {
			printf("%d ", p[i]);
		}
		else {
			printf("%d\n", p[i]);
		}
	}
	for (i = n-1 ; i >= 0; i--) {
		printf("%d", p[i]);
	}
	return 0;
}请问大神们这个为什么超时了啊 我自己编译没问题啊
神怼神 5年前 回复TA
@好大的鱼 你的次数呢