用C语言将一个整数逆序输出(用自定义函数)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言将一个整数逆序输出(用自定义函数)相关的知识,希望对你有一定的参考价值。

用C语言将一个整数逆序输出(用自定义函数)#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int daoXupai(int x)

int n,b,d=0;
while(n)

b=n%10;
d=d*10+b;
n=n/10;

return d;

int main()

int x,result;
printf("输入一个整数:",x);
scanf("%d",&x);
result=daoXupai(x);
printf("倒序排后的数为:\n",result);
system("pause");
return 0;

printf("倒序排后的数为:\\n",result);  //少了%d

不过加上后输出结果也不正确

这类问题用数组很方便, 或者在scanf时直接用字符数组获取数据更方便

#include<stdlib.h>
#include<stdio.h>
#include "string.h"
int daoXupai(int x)

char s[10]="\\0";
sprintf(s,"%d",x);
int len=strlen(s);
int i,t;
for(i=0;i<len/2;i++)

t=s[i];
s[i]=s[len-1-i];
s[len-1-i]=t;

t=atoi(s);
return t;

int main()

int x,result;
printf("输入一个整数:",x);
scanf("%d",&x);
result=daoXupai(x);
printf("倒序排后的数为:%d\\n",result);
system("pause");
return 0;

追问

可是,不能用数组,怎么办

追答void daoXupai(int n)

while(n>0)

printf("%d",n%10);
n=(n-n%10)/10;



int main(int argc, char *argv[]) 

int n;
scanf("%d",&n);
daoXupai(n);
return 0;

////或者/////////////
int daoXupai(int n)

int s=0,t;
while(n>0)

t=n%10;
n=(n-n%10)/10;
s=s*10+t;

return s;


int main(int argc, char *argv[]) 

int n;
scanf("%d",&n);
printf("%d",daoXupai(n));
return 0;

参考技术A 整个代码没什么大问题
最复杂的算法部分你都写的很好
然后 犯了一个很低级的错误...
printf("倒序排后的数为:\n",result);

输出没有加格式符...

printf("倒序排后的数为:%d\n",result);

加个%d就好啦。
参考技术B #include<stdio.h>
#include<stdlib.h>
#include<math.h>

int daoXupai(int n)

    int s=0,t;
    while(n>0)
    
        t=n%10;
        n=(n-n%10)/10;
        s=s*10+t;
    
    return s;


int main()

int x,result;
printf("输入一个整数:",x);
scanf("%d",&x);
result=daoXupai(x);
printf("倒序排后的数为:%d\\n",result);
system("pause");
return 0;

输入一个整数:123
倒序排后的数为:321
请按任意键继续. . .

C语言,写一个函数,使输入的字符串逆序

如果说用两个数组的话,我会做。我想知道,可不可以用一个数组,然后使用指针来完成?

完整的。。

#include<stdio.h>
#include <stdlib.h>
#include <string.h>
int main()

    char str[100];
    gets(str);
    int i = 0;
    char ch;
    int len = strlen(str);
    for(i = 0; i < len / 2; i++)
    
        ch = str[i];
        str[i] = str[len - i - 1];
        str[len - i - 1] = ch;
    
    puts(str);
    return 0;

结果:

参考技术A 一个数组当然可以做啊,问题是你希望用户输入的字符串是任意长度的吗追问

假设我有一个char s[100],然后使用gets(s),让用户输入,能行么

追答

你想让用户输入的字符串逆序存到s中去?

参考技术B 你学过链表么?就是要用数组做么???追问

链表没学到。不过您也可以写一下链表方法。用数组和指针不能么?

追答

你是在函数里面的话就这样写
// m是总共有多少字符
char temp
for(int i = 0;i<(m/2);i++)

temp = a[m-1-i];

a[m-1-i] = a[i];

a[i] = temp;

以上是关于用C语言将一个整数逆序输出(用自定义函数)的主要内容,如果未能解决你的问题,请参考以下文章

c语言中如何实现输入一个整数实现倒序输出

C语言程序:用递归法将一个整数n转化成字符串

C语言你编程:用递归方法实现对一个整数 的 逆序输出

c语言:将递归的方法将一个正整数逆序输出

C语言,在一维数组中存入10个整数并排序,其中数据的输入,排序和输出功能自定义函数实现

C语言程序设计中如何输出一个64位的整数