一个 c语言的问题求助

来源:百度知道 编辑:UC知道 时间:2024/05/19 00:19:34
#include <stdio.h>
char p[16];
void main()
{
char *change(char s[4][20]);
char s[4][20];
int i;
for(i=0;i<4;i++)
scanf("%s",s[i]);
puts(change(s));
}
char *change(char s[4][20])
{
int i,*t,*n;
*t=strcpy(s[0][0],s[0][1]);
for(i=1;i<4;i++)
{
*n=strcpy(t,s[i][0]);
*p=strcpy(n,s[i][1]);
}

/*程序填空,不要改变与输入输出有关的语句。
所谓藏头诗,就是将这首诗每一句的第一个字(1个汉字占2个字符)连起来,所组成的
内容就是该诗的真正含义。编写一个函数char *change(char s[4][20])实现藏头诗的解密。
输入一首藏头诗(假设只有4句),输出其真实含义。
例:
输入:
一叶轻舟向东流,
帆稍轻握杨柳手。
风纤碧波微起舞,
顺水任从雅客流。
输出:
一帆风顺
---------*/
return (p);
}

*t=strcpy(s[0][0],s[0][1]);
这句话很奇怪??
其实有更好的办法。

char *change(char s[4][20])
{
int i, n;
i = 0;
for(n = 0; n < 4; n++)
{
p[i++] = s[n][0];
p[i++] = s[n][1];
}
p[i] = '\0';
return p;
}

之后输出p就可以了

有意思,我学了数组再看一下

看不懂本来程序的逻辑啊..

看不懂,似乎把问题复杂化了。