一个关于求数字中位数全倒的C语言问题,似乎是有非常巧妙的思路。麻烦大家帮帮我!谢谢
发布网友
发布时间:2022-05-01 12:24
我来回答
共3个回答
热心网友
时间:2023-10-11 22:06
只给你中间逆序的思路代码
不考虑越界问题,输入输出格式、判断合法性,估计你自己应该能完成
int a,b=0;
scanf("%d",&a);
abs(a);
while(a)
{
b=b*10+a%10;
a/=10;
}
这样b就是a的逆序数了
要是很大的数,这个只能用字符串来解决,代码更简单。三个字符串函数解决
就是判断合法性麻烦一点
char a[1000];
int i;
while(1)
{
gets(a);
for(i=0;a[i];i++)
if(!(a[i]>='0'&&a[i]<='9'))
{
printf("error")
break;
}
if(i==strlen(a))
break;
}
strrev(a);
puts(a);
热心网友
时间:2023-10-11 22:07
#include <stdio.h>
void main()
{
char c;
char stack[100];
int i;
printf("输入:");
while(1){
i=0;
fflush(stdin);
do
{
c = getchar();
if(c >='0' && c <= '9')stack[i++]=c;
else
{
if(i==0&&(c=='-'||c=='+'))
{
;
}
else break;
}
}while(c!='\n');
if(c=='\n')break;
else printf("重新输入:");
}
i=i-1;
for(; i>=0; i--)
{
printf("%c",stack[i]);
}
}
热心网友
时间:2023-10-11 22:07
int Get(int a)
{
int b = abs(a);
int c = 0;
while(b>0)
{
c = c*10+b%10;
b = b/10;
}
return c;
}
整数int的取值范围:-2G~2G,不需要字符串