标题:额 这是什么错误
只看楼主
xtjopt
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:168
注 册:2012-9-12
得分:0 
回复 5楼 hejian11
谢谢你的程序,不过我还是想知道原来那些语句都错在哪里
2012-10-26 18:03
xtjopt
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:168
注 册:2012-9-12
得分:0 
#include<stdio.h>
#include<string.h>

void fun(char *w,int n)
{
    char t,*s1,*s2;  
    s1=w;            
    s2=w+n-1;         
    while(s1<s2)    {   
        t=*s1;      
        *s1=*s2;   
        *s2=t;  
        s1++;
        s2--;   
    }
}
int main()
{
    char str[20];
    printf("please input numbers:\n");
    scanf("%s",str);
    char *p;
    p=str;      
    fun(p,strlen(p));
    puts(p);
    return 0;
}
这是我自己改的程序,我知道错哪了 ,
错误1:
        t=*s1++;      
        *s1=*s2--;   
        *s2=t;
因为s1是字符串的首地址,s1到s2中都是属于字符串的内存  所以他们不能当char来赋值
修改方法
创建数组接受字符串,串字符的首地址就可以了
错误2:
        t=*s1++;      
        *s1=*s2--;   
        *s2=t;
逻辑性错误
        t=*s1;      
        *s1=*s2;   
        *s2=t;  
        s1++;
        s2--;
改成这样就可以了
还有就是思想很乱 谢谢一个孩子提供的代码
2012-10-26 18:43
xtjopt
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:168
注 册:2012-9-12
得分:0 
回复 6楼 一个孩子
不过我还有个不懂
传参传的是str字符数组的首地址 但是接收的是一个字符数组 ,为什么能行
额 那是不是字符数组的指针 能接受一个 字符数组

[ 本帖最后由 xtjopt 于 2012-10-27 15:40 编辑 ]
2012-10-26 18:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-384012-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023545 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved