解题思路:
看过很多人的解题思路,都觉得太麻烦了,个人认为目前我的解题思路相对简单。
主要利用getche()没有缓冲区的特性。当gerche()读到数字时,他并不回显在屏幕上,也不会把数据存入缓冲区,而是直接运行后面的程序,这导致用户每输入一个数字,就会循环一次.
注意事项:
1.虽然你输入的是数字,但getche()读的是字母,'1'的ASCII码是49,后面需要赋值时,要-48。
2.由于getche()的回显特性,你需要在最终的出结果前将屏幕清空,也就是“空格”然后“退格”。
实例代码:
#include <conio.h> //注意!网络编辑器找不到conio.h这个头文件,我在自己的编译器上可以成功! #include <stdlib.h> #include <stdio.h> int main() { int n = 0; //设置n为位数。 int x[6]; //设置x[6]为每个位数的数字。 for (int i = 1; i <= 6;i++) { int a = 0; a = getche(); //输入给a的数字是字符形式,所以后面需要减48。 if (a=='\r') //因为不大于5,需要最后一位\r来判断输入结束。 { printf(" \b\b\b\b\b");//由于getche()的特性,需要将回显清空。 printf("%d\n", n); //回显位数。 break; } n++; x[i] = a-48; } printf("%d %d %d %d %d\n",x[1],x[2],x[3],x[4],x[5]);//回显每个位数的数字。 printf("%d%d%d%d%d\n",x[5],x[4],x[3],x[2],x[1]); //反向回显数字。 system("pause"); return 0; }
还有不懂的请在评论区留言
0.0分
22 人评分
#include<stdio.h> int main() { int n, x=0, a, b, c, d, e; scanf("%d",&n); a=n/10000; b=((n%10000)/1000); c=(((n%10000)%1000)/100); d=((((n%10000)%1000)%100)/10); e=((((n%10000)%1000)%100)%10); for(x=0;n>0;x++) { n=n/10; } printf("%d\n",x); 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; } 这个简单点哈哈哈
#include<stdio.h> int main() { int x,a[5],num=0,i=0; int sum=0; scanf("%d",&x); while(x!=0) { a[i]=x%10; x/=10; num++; i++; } for(i=0;i<num;i++){ sum=sum*10+a[i]; } printf("%d\n",num); for(i=num-1;i>=0;i--) { printf("%d ",a[i]); } printf("\n%d",sum); } 为什么说的答案错误;有大佬看一下吗; 如果输入是 50000,他的逆序是00005还是5??求解答
周 2020-03-14 10:13:53 |
for(i=num-1;i>=0;i--) { printf("%d ",a[i]); }这个输出的格式不对,题目要求输出最后一个数字后不空格
为什么我的提交后一直的运行错误,但是我在自己的编辑器上能正常运行,怎么回事,有哪位大佬帮忙看一下 #include<stdio.h> int main() { int x; char a[4],b[4]; int n=0; scanf("%d",&x); for(int i=0;i<=4;i++) { if(x>0) { a[i]=x%10; x=x/10; n+=1; } } printf("%d\n",n); for(int j=n-1;j>=0;j--) { printf("%d ",a[j]); } printf("\n"); for(int k=0;k<n;k++) { printf("%d ",a[k]); } return 0; }
瓜瓜 2022-03-28 13:24:21 |
printf(" ")这是换行吧不是空格吧
怎么我的格式错误了。。。。。。。。。。。。。。。? #include<stdio.h> int main() { int i=0,count=0,temp; int a[5]; for(i=0;i<5;i++) { temp=getchar(); a[i]=temp-48; count++; } printf("%d\n",count); printf("%d %d %d %d %d",a[0],a[1],a[2],a[3],a[4]); printf("\n"); for(i=4;i>=0;i--) printf("%d",a[i]); return 0; }
#include<stdio.h> #include<conio.h> int main() { int b[5],a,n,m,i,j,k; i=0; printf("请输入一个数字:"); scanf("%d",&a); while(a) { m=a%10; a=a/10; b[i]=m; i++; } printf("%d\n",i); k=i; for(;i-1>=0;i--) printf("%-2d",b[i-1]); printf("\n"); for(j=0;j<k;j++) { printf("%d",b[j]); } getch(); return 0; }
#include <stdio.h> #include <conio.h> main(){ int a[5]={0},n=0,i,ch; for(i=0;i<5;i++) { ch=0; ch=getche(); if(ch=='\r') { break; } n++; a[i]=ch-48; } printf("\n%d\n",n); for(i=0;i<n;i++){ printf("%d ",a[i]); } printf("\n"); for(i=n-1;i>=0;i--){ printf("%d",a[i]); } printf("\n"); }
#include<stdio.h> int main() { int n,a1,a2,a3,a4,a5; scanf("%d",&n); a1=n%10; a2=n/10%10; a3=n/100%10; a4=n/1000%10; a5=n/10000; printf("%d %d %d %d %d",a5,a4,a3,a2,a1); putchar('\n'); printf("%d%d%d%d%d",a1,a2,a3,a4,a5); putchar('\n'); if(n>9999) n=5; else if(n>999) n=4; else if(n>99) n=3; else if(n>9) n=2; else n=1; printf("%d",n); return 0; } 我这个写反了 运行后显示:1 2 3 4 5 54321 5 顺着写就读不出来了 怎么解? 求指教 非常感谢!
付泽松坤 2018-10-18 21:40:36 |
#include<stdio.h> int main() { int n,a1,a2,a3,a4,a5; scanf("%d",&n); a1=n%10; a2=n/10%10; a3=n/100%10; a4=n/1000%10; a5=n/10000; if(n>9999) n=5; else if(n>999) n=4; else if(n>99) n=3; else if(n>9) n=2; else n=1; printf("%d\n",n); printf("%d %d %d %d %d\n",a5,a4,a3,a2,a1); printf("%d%d%d%d%d\n",a1,a2,a3,a4,a5); return 0; }
毛林甫 2018-10-20 12:40:05 |
#include<stdio.h> int main() {int a,b,c,d,e,f; scanf("%d",&a); b=a/10000; c=a/1000%10; d=a/100%10; e=a%100/10; f=a%10; if((a/10000)>0) printf("%d\n",5); else if((a/1000)>0) printf("%d\n",4); else if ((a/100)>0) printf("%d\n",3); else if((a/10)>0) printf("%d\n",2); else if(a>0) { printf("%d\n",1);} 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-09-16 21:06:34 |
你顺着写,n的值已经更改过了,不再是你输入的值,而是你赋予的个位数了
C语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:759 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:746 |
打水问题 (C语言代码)浏览:1147 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:387 |
程序员的表白 (C语言代码)浏览:705 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:899 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:631 |
简单的a+b (C语言代码)浏览:385 |
C语言训练-大、小写问题 (C语言代码)浏览:791 |
【偶数求和】 (C语言代码)浏览:587 |
一个小憨憨 2020-12-13 12:26:36 |
对
放逐之刃 2021-02-08 11:07:28 |
错
wa1ker 2022-05-04 13:40:28 |
你取余弄复杂了 a = n / 10000; b = (n % 10000) / 1000; c = (n % 1000) / 100; d = (n % 100) / 10; e = n % 10;这样就够了