用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;
}

用c语言把一个数字反过来
用c语言把一个数字反过来可以参考下面的代码:include <stdio.h> include <string.h> void main(){ char str[100];printf("请输入一个数:");gets(str);printf("%s\\n",strrev(str));}

用C语言编写一个函数,调用此函数可实现将一个数字颠倒过来
颠倒数字符合先进后出的顺序,可以借助栈来执行。首先分解这个数字,将每一位存到栈中,然后在将栈中的数字逐个出栈,组合在一起即可。代码如下:int reverse(int num){int stack[100];int top = 0;int result = 0;while (num != 0){stack[top++] = num % 10;num \/= 10;}while (top !

怎样用c语言表示 翻转的数 比如把81 翻转为18
S=C+D;printf("S=%d",S);}

c语言把输入的整数颠倒存在另一个变量中输出
在上面的代码中,首先使用scanf()函数输入一个整数。然后,使用while循环将输入的整数颠倒存储在reverse中,具体方法是每次取输入整数的最后一位数字,并将其加入到reverse的末尾,然后将输入整数除以10。最后,使用printf()函数输出颠倒后的整数。

c语言中把一串数字反向输出的程序是什么?
include<stdio.h> define MAX 3 \/\/定义你要输入整数的个数 int main(){ int i, s[MAX];for(i = 0; i < MAX; i++)scanf("%d",&s[i]);for(i = MAX-1; i >= 0; i--)printf("%d ",s[i]);printf("\\n");}

C语言中怎么把一个任意的数倒序输出.?知道的请告诉一下,谢谢.
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:。int a = 100;while(a != 0) { int b = a % 10;if (b > 0)printf("%d", b);a \/= 10;} 3、编译器运行test.cpp文件,此时成功将数进行了逆序输出,例如100输出了1。

c语言输出一个五位数,将它反向输出
includemain(){int n,a,b,c;scanf("%d",&n);a=n\/100;b=(n\/10)%10;c=n%10;printf("\\n倒序输出结果:%d%d%d",c,b,a);getch();}三位数除以100那么商就是三位数的百位上数字,三位数除以10的商再除以10的余数就是三位数的十位上的数字,三位数除以10的余数就是三位数个位上的数字...

c语言如何把数字顺序颠倒
用算法实现将一个输入的数字颠倒(输入12345->54321),要求不调用任何系统函数,也不能将输入的数字转换为字符串作为中间过渡,就可以颠倒了。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何...

C语言中把一个数倒过来输入
uint DigitCount(uint n){ int i = 0;do{++i, n \/= 10;}while(n != 0);return i;} void SpaceOut(uint n){ if(n > 0)SpaceOut(n\/10);if(n != 0)printf("%d ", n % 10);} void ReversePrint(uint n){ if(n > 0){ printf("%d", n % 10);ReversePrint(n\/10);...

C语言怎么把得出来的数字反过来
对于一个整数,反向取出每一位的值比较方便,每次输出个位,然后将数缩小10倍,再循环输出新数的个位。而若要正向输出整数的每一位,还使用上面的思路就行不通了,采用递归方法是最佳的处理方式(这也是递归应用的一个经典例子):include <stdio.h>void reverse( int n ){if ( n > 0 ) \/\/如果...

相似回答