解题思路:
在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 人评分
#include "stdio.h" int main() { int a[5],c; int i=0,count=0; while((c=getchar())!='\n') { a[i]=c-48; count++; i++; } printf("%d\n",count); for(int j=0;j<i;j++) { if(j!=i-1) printf("%d ",a[j]); else printf("%d\n",a[j]); } for(int j=4;j>=0;j--) { printf("%d",a[j]); } return 0; } 大佬们这个哪里有问题啊,说我运行错误50%
我有一个疑问,如果将getchar换成getch,为啥跳不出循环,必须输满五个数才能跳出,求解~
又年i 2019-08-09 23:26:39 |
后来查了ASCII表发现回车键的值是13,把temp==10换成13没啥问题,但是把getchar情况下的temp==13又出问题了
#include<stdio.h> int main() { int a,t,i,j,c,m; scanf("%d",&t); c=t; if(t>=10000)j=5; else if(t>=1000)j=4; /*学艺不精只能用死办法*/ else if(t>=100)j=3; else if(t>=10)j=2; else j=1; m=j; printf("%d\n",j); for(i=10000;i>=1;i/=10) { if(a=t/i) { printf("%d",a); if(j) { printf(" "); j--; } } t=t%i; } printf("\n"); for(i=1;i<=m;i++) { a=c%10; printf("%d",a); c=c/10; if(c==0)break; } }
#include<stdio.h> int main(int argc,const char *argv[]) { int x; scanf("%d",&x); int cnt=0; int y,mask=1; y=x; int d[5]; while(y>0){ d[cnt]=y%10; y/=10; cnt++; mask*=10; } mask/=10; printf("%d\n",cnt); int b; do{ b=x/mask; printf("%d",b); if(mask>9){ printf(" "); } x%=mask; mask/=10; }while(mask>0); printf("\n"); int i; for(i=0;i<cnt;i++)printf("%d",d[i]); printf("\n"); return 0; }
#include <stdio.h> int main() { char a[6]; int len; fgets(a,sizeof(a), stdin); len = 0; for (int i = 0; i <= 5; i++) { if (a[i] == '\0') len = i; } printf("%d\n", len); for (int i = 0; i < len; i++) printf("%c ", a[i]); printf("\n"); for (int i = len - 1; i >= 0; i--) printf("%c", a[i]); return 0; }
#include<stdio.h> int main() { int x,y=0,a[5]; scanf("%d",&x); while(x!=0){ a[y]=x%10; x=x/10; y++; } printf("%d\n",y); printf("%d %d %d %d %d\n",a[0],a[1],a[2],a[3],a[4]); printf("%d%d%d%d%d\n",a[4],a[3],a[2],a[1],a[0]); return 0; }
风芳逆 2019-10-10 16:13:50 |
牛逼
谋刘 2019-10-21 20:33:36 |
666
杨少 2019-10-27 11:40:39 |
窝草 可以可以
杨少 2019-10-27 21:16:12 |
想法不错,不过这个是错的
mkdir 2019-10-31 15:04:14 |
帮你改了下#include<stdio.h> #include<string.h> int main(void) { int n,i = 0,j = 0; int num; int a[5]; scanf("%d", &n); while(n != 0){ a[i] = n % 10; n = n / 10; i ++; } printf("%d\n",i); //输出位数 num = i; for (j = num - 1; j >= 0; j --) printf("%d ",a[j]); putchar('\n'); for (j = 0; j <= num - 1; j++) printf("%d",a[j]); return 0; }
#include <stdio.h> int main (void) { int x=0; scanf("%d",&x); while(x>100000) { scanf("%d",&x); } int i=1,b=x,c=x; int m,n=1; while(b>1) { b/=10; i++; n*=10; } printf("%d\n",i); while(c>1) { printf("%d ",c/n); c%=n; n/=10; } printf("\n"); while(i>0) { i--; printf("%d",x%10); x/=10; } return 0; }
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:525 |
C语言训练-阶乘和数* (C语言代码)浏览:1060 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:1271 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:589 |
printf基础练习2 (C语言代码)浏览:826 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:658 |
C语言程序设计教程(第三版)课后习题6.8 (C++代码)浏览:614 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:1482 |
水仙花 (C语言代码)浏览:1163 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:536 |
茧枫 2019-10-25 20:37:14 |
佩服佩服
半个包子 2019-11-12 14:13:37 |
加油
砂砾成岩兮 2019-11-12 17:24:41 |
你在想屁吃