[求助]c语言的问题(继续)
#include<stdio.h>#include<string.h>
fun (char *w,int n)
{
char t,*s1,*s2;
s1=w;s2=w+n-1;
while(s1<s2)
{t=*s1++;
*s1=*s2-;
*s2=t;
}
}
main()
{char *p;
p="1234567";
fun(p,strlen(P));
puts(P);
}
这个是在一个数组中选择头尾数据输出
对这个部分看的不是很明白 请帮忙解释下
s1=w;s2=w+n-1;
while(s1<s2)
{t=*s1++;
*s1=*s2-;
*s2=t;
谢谢了啊 在家里学习 只好麻烦各位网上的大哥们了 题目上写的就是*s1=*s2-; 我没打错
搜索更多相关的解决方案:
c语言
----------------解决方案--------------------------------------------------------
s1=w;s2=w+n-1;
把w 的首地址给s1
把w 的尾地址给s2
进入循环
w[0]--->t
w[6]--->w[1]
t --->w[5]
以此类推
直到s1<s2
我感觉那程序写的不对
是不是这个啊:
#include<stdio.h>
#include<string.h>
fun (char *w,int n)
{
char t,*s1,*s2;
s1=w;
s2=w+n-1;
while(s1<s2)
{
t=*s1;
*s1++=*s2;
*s2--=t;
}
}
main()
{
char *p;
p="1234567";
fun(p,strlen(p));
puts(p);
getch();
}
这还有点意义
----------------解决方案--------------------------------------------------------
错误的程序
----------------解决方案--------------------------------------------------------
现在的书太恶心
----------------解决方案--------------------------------------------------------
盗版书
----------------解决方案--------------------------------------------------------
字符串倒序输出.
设两个指针分别指向字符串头,尾.总是交换两指针中的内容,两指针向中间靠拢,直到头指针不在尾指针的前面.
cdmalcl 写的很好啊
类似的:
void fun (char *w,int n)
{
char t;
int i,j;
for(i=0,j=n-1;i<j;i++,j--)
{
t=*(w+i);
*(w+i)=*(w+j);
*(w+j)=t;
}
}
----------------解决方案--------------------------------------------------------