逆序输出

写一函数,使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串

输入10个数字,然后逆序输出

输入一个整数,然后逆序输出

 

对于字符串的逆序输出,我首先会考虑到拷贝一个一模一样的字符串数组,然后用for循环将一个数组最大下标赋值给另一个一样的数组的最小下标,再让它们一个递增加一 一个递减减一,就能实现对数组的逆序赋值 再输出即可

这种方法可对字符串的逆序输出,那么可不可以对一些数字逆序输出也用这种方法呢? 接着我就试验了一下,发现这种逆序输出的可以通用这种方法。都是先定义一个数组后,再复制一份一模一样的另一个数组,将另一个数组的最大下标赋给开始数组的最小下标就可以了。

然而,有的题目是给定你一个整数,让你将一个整数逆序输出。显然上述方法不好用。。这里我们可以用循环取余来将他们末位的数一一取出来while(a!=0) b=a%10;a=a/10; 输出b就是这个整数的逆序输出。

这里附录字符串和数字的源代码:

#include <stdio.h>                                                                 
#include <string.h>
void huanxu(char str1[]);
main()
{
    char str1[100];
    scanf("%s",str1);
    huanxu(str1);
    printf("%s",str1);
}
void huanxu(char str1[])
{
    int n,i,j;
    char str2[100];
    strcpy(str2,str1);
    n=strlen(str1);
    for(i=0,j=n-1;i<n;i++,j--)
        str1[i]=str2[j];
}

 

#include <stdio.h>
main()
{
    int a[10],i,j;
    int b[10];
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    for(i=0;i<10;i++)
        b[i]=a[i];
    for(i=0,j=9;i<10;i++,j--)
        a[i]=b[j];
    for(i=0;i<10;i++)
    {
        printf("%d",a[i]);
    printf(" ");
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值