C语言怎么反序输出

 我来答
风若远去何人留
推荐于2017-09-09 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450106
专业C/C++软件开发

向TA提问 私信TA
展开全部

最简单的反序输出,就是把数组反序输出。只需要从最大下标开始,向0下标循环输出就可以了。

比如将字符串(字符数组)反序输出的代码如下:

void reverse_output_str(char *str)
{
    int len = strlen(str) -1;//得到最大下标
    
    while(len >= 0)printf("%c", str[len--]); //反序输出直到str[0]
}

其它类的反序输出,也都可以归结为类似的情况。先把要输出的正序输出到一个数组,然后把这个数组反序输出。

比如把一个10进制数反序输出,即输入1234,输出4321,就可以采用类似的方式:

void reverse_int_output(int a)
{
    char buf[20];
    sprintf(buf, "%d", a);//将a转为字符串
    reverse_output_str(buf);//调用刚才的函数反序输出。
}
宿啥品8397
2015-05-20 · TA获得超过4528个赞
知道大有可为答主
回答量:3273
采纳率:60%
帮助的人:1785万
展开全部

#include<stdio.h>
#include<string.h>
#include <stdlib.h>
int main()
{
    int i,j,k;
    char str[80];
//    for(i=0; i<80; i++)
//    {
//        scanf("%c",&str[i]);
//    }t
    //注意你的输入有问题
    gets(str);
//    for(i=0,j=strlen(str)-1; i<j; i++,j--)
//    {
//        k=i;
//        i=j;
//        j=k;
//    }
    for(i=strlen(str)-1; i>=0; i--)//改改循环体即可
    {
        printf("%c",str[i]);
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-18
展开全部
C语言反序输出字符源程序如下:
#include <stdio.h>
int main()
{
char s[100]="abcdefghijk";
int i;
for(i=0;s[i]!='\0';i++);
for(i-=1;i>=0;i--)
printf("%c",s[i]);
printf("\n");
return 0;
}

输入任意输入一个正整数,反序输出每一位源程序如下:
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
do
{
printf("%d", n % 10);
}while(n /= 10);
printf("\n");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mr_shj
2015-05-20 · TA获得超过2679个赞
知道大有可为答主
回答量:1665
采纳率:94%
帮助的人:1362万
展开全部
//在你的源程序中作了一点修改,看注释
#include<stdio.h>
#include<string.h>
int main()
{ int i,j,k;
char str[80];
for(i=0;i<80;i++)
{
scanf("%c",&str[i]);
}
//前面的代码没有str字串的结束标志,下面的strlen函数可能会得不到正确的长度,这地方加一个字符串结束标志
str[79]='\0' ;
//如果不用上面这一句结束标志,下面不要使用strlen可以直接使用80
for(i=0,j=strlen(str)-1;i<j;i++,j--)
{
k=str[i]; //交换的是数组中字符的本身,而不是它们的序号
str[i]=str[j];
str[j]=k;
}
for(i=0;i<80;i++)
{
printf("%c",str[i]);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-18
展开全部
#include<stdio.h>main(){int n,m=0;printf("输入一个整数:");scanf("%d",&n);while(n!=0){m=m*10;m=m+n%10;n=n/10;}printf("%d\n",m);}可以考虑步骤是怎么做到的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式