标题:求解答啊 调用函数 按相反顺序存放
只看楼主
程丁岚
Rank: 2
等 级:论坛游民
威 望:1
帖 子:23
专家分:36
注 册:2011-12-8
结帖率:100%
已结贴  问题点数:20 回复次数:9 
求解答啊 调用函数 按相反顺序存放
#include "stdio.h"
#include "string.h"
int main()
{
void change(int x,char r[]);
char a[10];
int n;
gets(a);
n=strlen(a);
change(n,a);
puts(a);
return 0;
}
void change(int x,char r[])
{
    int temp;
    char *i=r ;char *p=r+x;
    for(;r<(i+x)/2;r++)
    {
        temp=*r;
        *r=*(p-r-1);
        *(p-r-1)=temp;
    }
}
c:\documents and settings\administrator\桌面\2.c(18) : error C2296: '/' : illegal, left operand has type 'char *'
c:\documents and settings\administrator\桌面\2.c(21) : error C2100: illegal indirection
c:\documents and settings\administrator\桌面\2.c(22) : error C2100: illegal indirection
c:\documents and settings\administrator\桌面\2.c(22) : error C2106: '=' : left operand must be l-value
Error executing cl.exe.
搜索更多相关主题的帖子: documents settings include change return 
2011-12-08 19:42
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
得分:10 
我把你的程序,改动了哈。
程序代码:
#include "stdio.h"
#include "string.h"

char *change(int x,char r[]);
int main()
{
char a[10];
char *p;
int n;
gets(a);
n=strlen(a);
p=change(n,a);
puts(p);
return 0;
}
char *change(int x,char r[])
{
    /*
    int temp;
    char *i=r ;char *p=r+x;
    for(;r<(i+x)/2;r++)
    {
        temp=*r;
        *r=*(p-r-1);
        *(p-r-1)=temp;
    }
    */
    char *p,*q;
    char ch;
    p=r;
    q=p+strlen(r)-1;
    while (p<q)
    {
        ch=*p;
        *p=*q;
        *q=ch;
        p++;
        q--;
    }
    return r;
}


~~我的明天我知道~~
2011-12-08 19:55
程丁岚
Rank: 2
等 级:论坛游民
威 望:1
帖 子:23
专家分:36
注 册:2011-12-8
得分:0 
谢谢,这个程序ok,可是我按照你打的修改了我的以后还是不行,不解自己错在哪里;
#include "stdio.h"
#include "string.h"
int main()
{
char change(int x,char r[]);
char a[10];
int n;
char *q;
gets(a);
n=strlen(a);
q=change(n,a);
puts(q);
return 0;
}
char change(int x,char r[])
{
    char temp;
    char *i=r ;char *p=r+x;
    for(;r<(i+x)/2;r++)
    {
        temp=*r;
        *r=*(p-r-1);
        *(p-r-1)=temp;
    }
    return r;
}
2011-12-08 20:05
程丁岚
Rank: 2
等 级:论坛游民
威 望:1
帖 子:23
专家分:36
注 册:2011-12-8
得分:0 
偶想知道错在哪里啊
2011-12-08 20:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:10 
回复 楼主 程丁岚
编译信息明明告诉你第18行出错,不会去那行看看的么?

授人以渔,不授人以鱼。
2011-12-08 20:15
程丁岚
Rank: 2
等 级:论坛游民
威 望:1
帖 子:23
专家分:36
注 册:2011-12-8
得分:0 
额,有看过,没觉得错,,小的不才;求解啊,各位神人;
2011-12-08 20:20
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
r<(i+x)/2
除号,你自己看看r、i、x分别都是什么数据类型,在做什么运算。

授人以渔,不授人以鱼。
2011-12-08 20:23
程丁岚
Rank: 2
等 级:论坛游民
威 望:1
帖 子:23
专家分:36
注 册:2011-12-8
得分:0 
沃!原来是这样,明白了谢谢,太感谢了!!
2011-12-08 20:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
送你一句话:编译器才是最好的老师,培养认真观察、琢磨编译信息的习惯,胜于到处问人。

授人以渔,不授人以鱼。
2011-12-08 20:29
程丁岚
Rank: 2
等 级:论坛游民
威 望:1
帖 子:23
专家分:36
注 册:2011-12-8
得分:0 
嗯嗯,受教了
2011-12-08 20:33



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




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

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