用c语言把一个数字反过来

需要用c语言写一个程序把一组数字反过来。知道怎么把12345弄成54321 但是如果数字式1100300 这个就不好使了~求高手帮忙!谢谢谢谢

c语言把一个数字反过来可以参考下面的代码:

#include <stdio.h>

#include <string.h>

void main()

{

char str[100];

printf("请输入一个数:");

gets(str);

printf("%s\n",strrev(str));

}

扩展资料:

printf()函数的调用格式为:

printf("<格式化字符串>", <参量表>);

其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开。

参考资料来源:百度百科-printf()

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-09
满意请采纳

00123不是一个数,而是一个字串!

代码如下
#include <stdio.h>
#include <string.h>

#define SIZE 100

int main(void)
{
int i, len, temp;
char str[SIZE];

printf("请输入一串数:\n");
scanf("%s", str);

len = strlen(str);

for (i=0; i<len/2; i++)//第一个与最后一个交换,第二个与倒出第二个交换,... ...直到len/2
{
temp = str[i];
str[i] = str[len-i-1];
str[len-i-1] = temp;
}

printf("%s\n", str);

return 0;
}

#include <stdio.h>

#define SIZE 20

int main(void)
{
int i, j = 0;
int num;
int arr[SIZE] = { 0 };

printf("请输入一个数:");
scanf("%d", &num);

while (0 != num)
{
arr[j++] = num % 10;
num /= 10;
}

for (i=0; i<j; i++)
{
printf("%d", arr[i]);
}
printf("\n");

return 0;
}追问

可以不用string就用int吗?麻烦再给我讲讲呗

追答

不行
如果int类型是00123,只会有123存在,前面两个自然会丢

如果做成字符串处理,则不会丢是前两个零
通过第一个字符和最后一个字符交换,然后第二个字符和倒出第二个字符交换... ...
最终形成反序字符串

追问

不好意思再问下,如果输入的开头没有0但是结尾有0, 比如123400反过来时0001234, 也必须要用string吗?

追答

这个可以当成数处理,但不能超过2的31减1,否则发生溢出

追问

因为要求就只能用int,所以就想算出来以为就显示一位,有没有那样的while呢?

追答

要求用int,那么就是一个数,00123如果是一个数的话,就是123,第二个程序就是

不要在钻牛角尖了!

本回答被提问者采纳
第2个回答  2011-10-22
对于这个反转的,最好先转换成字符串,处理字符串要方便的多,处理完后再把字符串转换成数字
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
char str1[20]; //转换前
char str2[20]; //转换后
int nb;
char *p=str1;
char *q=str2;

printf("输入一个数:");
scanf("%d",&nb);
sprintf(p,"%d",nb); //int 转换成字符串
while(*p)
p++;
for(int i=0;i<strlen(str1);i++)
*q++=*(--p);
*q=0;
nb=atoi(str2);
printf("%d\n",nb);
}
第3个回答  2011-10-22
#include <stdio.h>
#include <string.h>
void main()
{
char str[100];
printf("请输入一个数:");
gets(str);
printf("%s\n",strrev(str));
}
第4个回答  推荐于2017-10-06
#include <stdio.h>

int main(void)
{
int i, j = 0;
int num;
int rstN=0;

printf("请输入一个数:");
scanf("%d", &num);

while (0 != num)
{
rstN = rstN*10;
rstN += num % 10;
num /= 10;
}

printf("%d\n", rstN);

return 0;
}
相似回答