原题链接:[编程入门]数字的处理与判断
解题思路:
看过很多人的解题思路,都觉得太麻烦了,个人认为目前我的解题思路相对简单。
主要利用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分
17 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
@稳健ing printf(" ")这是换行吧不是空格吧#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; } 这个简单点哈哈哈@奔跑的蜗牛 for(i=num-1;i>=0;i--) { printf("%d ",a[i]); }这个输出的格式不对,题目要求输出最后一个数字后不空格#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??求解答为什么我的提交后一直的运行错误,但是我在自己的编辑器上能正常运行,怎么回事,有哪位大佬帮忙看一下 #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; }怎么我的格式错误了。。。。。。。。。。。。。。。? #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; }