标题:给位大哥大姐,帮帮忙看看是怎么回事吧?
只看楼主
c1025329734
Rank: 1
等 级:新手上路
帖 子:50
专家分:8
注 册:2012-11-10
结帖率:69.23%
已结贴  问题点数:20 回复次数:5 
给位大哥大姐,帮帮忙看看是怎么回事吧?
#include<stdio.h>
#include<stdlib.h>
char*change(char*s[]);
int main(void)
{
    int i;
    char *poem[4],*p[4];

    printf("请输入藏头诗:\n");
    for(i=0;i<4;i++){
        scanf("%s",poem[i]);
        p[i]=poem[i];
    }
    printf("%s\n",change(poem));

    return 0;
}
char*change(char*s[])
{
    int i;
    char*t=(char*)malloc(9*sizeof(char));
    for(i=0;i<4;i++){
        t[2*i]=*(s+i);
        t[2*i+1]=*(s[i]+1);
    }

    return t;
}
它的错误是显示
t[2*i]=*(s+i);这一句出错了,就是老是给不对,请给个建议!!!!感激不尽!!
搜索更多相关主题的帖子: 大哥 include change return 
2013-05-07 21:39
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:185
帖 子:1404
专家分:8479
注 册:2010-3-16
得分:5 
问题比较多。
 char *poem[4] 没有分配内存就使用。
*p[4];是打酱油的。

单t[2*i]=*(s+i)这句来说。
t是char* 指针,s也是 char*指针,所以(s+i)前面的*多余了。
2013-05-07 22:14
c1025329734
Rank: 1
等 级:新手上路
帖 子:50
专家分:8
注 册:2012-11-10
得分:0 
回复 2楼 apull
改了还是不行的哦哦
2013-05-07 22:26
hebiaofu
Rank: 2
等 级:论坛游民
帖 子:6
专家分:21
注 册:2013-5-9
得分:5 

 char*change(char*s[])
 {
     int i;
     char*t=(char*)malloc(9*sizeof(char));
     for(i=0;i<4;i++){
         t[2*i]=*(s[i]);
         t[2*i+1]=*(s[i]+1);
     }
 
    return t;
 }
这样试下
2013-05-10 15:13
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2391
专家分:13384
注 册:2013-3-3
得分:5 
char*change(char*s[])              //因为s是指针数组,你下面 t[2*i]=*(s+i);这样的形式就不对了,你下面那句怎么写的
{
    int i;
    char *t=(char*)malloc(9*sizeof(char));
    for(i=0;i<4;i++){
        t[2*i]=*(s[i]);
        t[2*i+1]=*(s[i]+1);
    }

    return t;
}

Maybe
2013-05-11 15:49
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
得分:5 
#include<stdio.h>
#include<stdlib.h>
char*change(char (*s)[80]);
int main(void)
{
    int i;
    char poem[4][80];
    printf("请输入藏头诗:\n");
    for(i=0;i<4;i++)
        gets(poem[i]);
    printf("%s\n",change(poem));
    return 0;
}
char *change(char (*s)[80])
{
    int i;
    char *t=(char*)malloc(9*sizeof(char));
    for(i=0;i<4;i++)
    {
        t[2*i]=*(s[i]);
        t[2*i+1]=*(s[i]+1);
    }
    t[8]='\0';
    return t;
}
看看这个是不是需要的
2013-05-13 23:49



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




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

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