解题思路:
在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 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; } 这么写问题在哪?求大神解释
#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
想你 2019-04-24 22:06:17 |
#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; }
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; } 我这里怎么错了?求助!!!
#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; }请问大神们这个为什么超时了啊 我自己编译没问题啊
#include<stdio.h> int main() { scanf("%d",&E); a=E/10000%10; b=E/1000%10; c=E/100%10; d=E/10%10; e=E%10; F=a*1+b*10+c*100+d*1000+e*10000; printf("%d %d %d %d %d\n",a,b,c,d,e); printf("%d\n",F); return 0; } 请问我这个程序哪里错了,为什么说答案错误?
#include<stdio.h> #include<math.h> int main() { int m=0,n; int s[10]; int i=0; scanf("%d",&n); while(n) { s[i++]=n%10; n/=10; m++; } printf("%d\n",m); while(i--) { printf("%d ",s[i]); } printf("\n"); i+=1; while(m--) { printf("%d",s[i++]); } return 0; }
#include <stdio.h> int main() { int a, b=0, c[100]; scanf("%d", &a); while (a > 0) { c[b] = a % 10; a /= 10; if (a == 0) break; b++; } printf("%ld\n", b+1); for (int i = b; i >=0; i--) printf("%d ", c[i]); printf("\n"); for(int i=0;i<=b;i++) printf("%d", c[i]); printf("\n"); return 0; } 请问一下为什么输入的数字不能超过十位呢?需要修改哪里呢?
#include"stdio.h" int main(){ int a,b,c,d,e; int x; scanf("%d",&x); if(x>9999) printf("5\n"); else if(x>999&&x<10000) printf("4\n"); else if(x>99&&x<1000) printf("3\n"); else if(x>9&&x<100) printf("2\n"); else printf("1\n"); a=x/10000; b=x%10000/1000; c=x%1000/100; d=x%100/10; e=x%10; printf("%d %d %d %d %d\n",a,b,c,d,e); while(x) { printf("%d ",x%10); x/=10; } return 0; }
C语言训练-立方和不等式 (C语言代码)浏览:779 |
C语言训练-计算:t=1-1/(2*2)-1/(3*3)-...-1/(m*m) (C语言代码)浏览:799 |
矩阵乘法 (C++代码)浏览:1662 |
多输入输出练习1 (C语言代码)浏览:1219 |
ASCII帮了大忙浏览:797 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:552 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:565 |
WU-整数平均值 (C++代码)浏览:1307 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:642 |
水仙花 (C语言代码)浏览:1163 |
贾晓聪 2019-03-31 10:01:07 |
while 里面 i 的判断和输出不对 while(i>=0){printf(x[--i]);}