Wayne


私信TA

用户名:Wayne

访问量:34392

签 名:

等  级
排  名 874
经  验 3572
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 郑州大学
专  业

  自我简介:

解题思路:

在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;
}


 

0.0分

235 人评分

  评论区

在第十五行中为什么是x【i】,而且这一行应该也不是for循环中的循环体呀
2019-05-25 16:31:33
#include<stdio.h>
int main()
{
	long int x;
	int sum=0,a;
	int m=0,n=0,v=0,c=0;
	scanf("%d",&x);
	a=x;
	while(x>0)
	{
		x=x/10;
		sum=sum+1;
	}
	printf("%d\t%d\n",a,sum);

	if(sum==5)
	{
		m=a/10000;
		printf("%d ",m);
		a=a%10000;
		sum=sum-1;
	}
	if(sum==4)
	{
		n=a/1000;
		printf("%d ",n);
		a=a%1000;
		sum=sum-1;
	}
	if(sum==3)
	{
		v=a/100;
		printf("%d ",v);
		a=a%100;
		sum=sum-1;
	}
	if(sum==2)
		{
			c=a/10;
			printf("%d ",c);
			a=a%10;
			sum=sum-1;
		}
	if(sum==1)
		printf("%d\n",a);
printf("%d%d%d%d%d\n",a,c,v,n,m);
			


return 0;
}
2019-04-24 22:07:10
第二行的特殊处理,我用\b退格处理怎么不行呢-_-+_+
2019-04-21 23:48:42
#include<stdio.h>

int main(){
	int n;
	int end = 0;
	int num[5] = {0};
	int isError(int n);    //判断输入的数是否正确,是则返回False
	void numDevide(int n, int num[]);     //分离输入的数字并存入一个数组
	int getEndIndex(int num[]);      //得到该数组从后往前第一个不为零元素的位置
	void dispReverse(int end, int num[]);    //正逆序显示该数字
	printf("Input the number from 0-99999:\n");
	scanf("%d", &n);
	while(isError(n)){
		if(n == 0){
			//如果是0,同样返回错误,但直接将它打印
   			printf("%d\n", n);
   			printf("%d\n", n);
   			printf("%d\n", n);
   			break;
		}
		else{
			printf("Input error, retry please:\n");
			scanf("%d", &n);
		}
	}
	numDevide(n, num);
	en
2019-04-21 20:59:25
#include<stdio.h> 
#include<string.h> 
int main() 
{   
    char a[100],i; 
    scanf("%s",a); 
    printf("%lu\n",strlen(a)); 
    for( i=0; i<strlen(a); i++){
        printf("%c ",a[i]);
    }
    printf("\n");
    for( i=strlen(a)-1; i>=0; i--){
        printf("%c",a[i]);
    }
    return 0;
}
2019-04-12 20:55:43
#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;

}
我们不一样,全都不一样。
2019-04-07 17:27:50
#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;
}
2019-03-26 11:47:22
#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;
}
2019-03-25 18:32:17