我有道C++题目知道结果了,但不知道怎么写过程,问了好多同学他们都不知道,求救啊
我有道题目知道结果了,但不知道怎么写过程,问了好多同学他们都不知道,求救啊,这可是我们的期末考试题目啊,老师给我们每个人一个不一样题目,明天就要交啊,就这一道题,100分...
我有道题目知道结果了,但不知道怎么写过程,问了好多同学他们都不知道,求救啊,这可是我们的期末考试题目啊,老师给我们每个人一个不一样题目,明天就要交啊,就这一道题,100分啊,望大侠帮我解决下解题过程,谢了!
原题目:
下列给定程序中函数fun的功能是:将字符串中的内容按逆序输出,但不改变字符串中的内容。例如,若字符串为abcd,则应输出dcba。
请填写完成函数定义,并完成对应功能。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
void fun(char *a)
{
/*******在此处填写完成函数定义缺少的部分*********/
}
main()
{ char s[10]="abcd";
printf("处理前字符串=%s\n处理后字符串=",s);
fun(s);
printf("\n");
}
这是我做出来答案:
{if(*a)
{fun(a+1);
printf("%c",*a);
}
}
运行结果:
望大侠给我说一下解题思路,谢了! 展开
原题目:
下列给定程序中函数fun的功能是:将字符串中的内容按逆序输出,但不改变字符串中的内容。例如,若字符串为abcd,则应输出dcba。
请填写完成函数定义,并完成对应功能。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
void fun(char *a)
{
/*******在此处填写完成函数定义缺少的部分*********/
}
main()
{ char s[10]="abcd";
printf("处理前字符串=%s\n处理后字符串=",s);
fun(s);
printf("\n");
}
这是我做出来答案:
{if(*a)
{fun(a+1);
printf("%c",*a);
}
}
运行结果:
望大侠给我说一下解题思路,谢了! 展开
3个回答
展开全部
追问
我看了下非常赞同,你可以把你的这种方法详细叙述一下么?
追答
我的方法,给了注释了啊。前面是计算传入的字符串的长度(字符串默认以‘\0’结尾)。后面是一个循环,下标从len-1到0,一个一个输出字符串中的字符。这样就实现了逆序输出。
展开全部
要反序打印字符串,可以用递归,就是楼上那个代码,先打印后面一个字符,再打印前面的字符,每步都遵守这个规则,递归终止条件是已经遍历到字符串结束符
追问
{
if(*a)
{
fun(a+1);
printf("%c",*a);
}
}答案中的fun(a+1);是什么意思,这个地方不太理解?
追答
{
if(*a) //假如没到字符串结尾
{
fun(a+1); // 先处理后面一个字符
printf("%c",*a); //打印此字符
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把"abcd"最后的'\0'也输出了,只是'0'不显示而已。最好把printf("%c",*a);改为if(*a)
printf("%c",*a);。余正确……
printf("%c",*a);。余正确……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询