第1个回答 2010-02-02
一个外部函数返回值要么是一个类型的数字或字符或要么事数组或字符串的首地址,而你return a[i]返回的好似你输入的最后一个字符。
我将你的程序改了一下,你看看:
#include "stdio.h"
char mygets()
{
int i;
for(i=0;i<10;i++)
return(getchar());
}
void myputs(char b[10])
{
int i;
for(i=0;i<10;i++)
putchar(b[i]);
}
void main()
{
char x[100];
printf("请输入一串字符\n");
for(int i=0;i<10;i++)
x[i]=mygets();
myputs(x);
}
第2个回答 2010-02-02
#include "stdio.h"
void mygets(char *a)
{
scanf("%s",a);
}
void myputs(char *b)
{
int i;
for(i=0;i<100;i++)
{
if (b[i]!='\0')
putchar(b[i]);
else
break;
}
printf("\n");
}
void main()
{
char x[100]={0};
printf("请输入一串字符\n");
mygets(x);
myputs(x);
}
第3个回答 2010-02-02
#include "stdio.h"
void mygets(char a[])
{
scanf("%s",a);
}
void myputs(char b[])
{
printf("%s\n",b);
}
void main()
{
char x[100];
printf("请输入一串字符\n");
mygets(x);
myputs(x);
}
第4个回答 2010-02-02
return a[i];
i已经指向最后一位了
第5个回答 2010-02-02
问题出在 对for循环的理解。
在跳出for循环以后,遍历已经超出了范围。(很好理解:否则还会继续遍历。) 因此两处return的下标都应该是 i - 1 而不是 i.