一道关于指针的C语言改错题,求学霸解释!!
函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。例如:当s所指字符串为“ABCD”,则t为“ABCDDCBA”。改正程序中的错误!...
函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。例如:当s所指字符串为“ABCD”,则t为“ABCDDCBA”。改正程序中的错误!
#include<stdio.h>
void fun(char *s,char *t)
{
char*p,*q;
for(p=s,q=s;p!='\0';p++,q++)
{
for(;p>=s;p--,q++)
{
*q=*p;
}
}
}
void main()
{
char s[100],t[100];
printf("Please input string S:");
gets(s);
fun(s,t);
printf("\nThe result is:%s\n",t);
}
求学霸指教,非常感谢!
代码打错了,原版是
for(p=s,q=t;p!='\0';p++,q++) 展开
#include<stdio.h>
void fun(char *s,char *t)
{
char*p,*q;
for(p=s,q=s;p!='\0';p++,q++)
{
for(;p>=s;p--,q++)
{
*q=*p;
}
}
}
void main()
{
char s[100],t[100];
printf("Please input string S:");
gets(s);
fun(s,t);
printf("\nThe result is:%s\n",t);
}
求学霸指教,非常感谢!
代码打错了,原版是
for(p=s,q=t;p!='\0';p++,q++) 展开
4个回答
展开全部
函数fun()不对。修改如下:
void fun(char *s,char *t)
{
char*p,*q;
q=t;
for(p=s;p!='\0';p++,q++) *q=*p;
for(;p>=s;p--,q++) *q=*p;
}
void fun(char *s,char *t)
{
char*p,*q;
q=t;
for(p=s;p!='\0';p++,q++) *q=*p;
for(;p>=s;p--,q++) *q=*p;
}
追问
可是程序还是没办法运行。。。
追答
将函数改为:
void fun(char *s,char *t)
{
char*p,*q;
q=t;
for(p=s;p!='\0';p++,q++) *q=*p;
for(;p>=s;p--,q++) *q=*p;
*q='\0'; /*补一个串结束标志*/
}
展开全部
同学,你的t在fun函数有被赋值吗?没有被赋值你让它显示什么啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-12-25
展开全部
卧槽 本来想给你改的 看你写个求学霸就彻底没有兴趣了。。
追问
我觉得能该这道题的都是学霸!
追答
不是学霸也能会啊==
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
弱弱的问下是不是二级考试那样的更改规则?
追问
是的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询