问题:
1.printf("请输入字符串%d:",++i);
scanf("%s",chars[i]); /*chars[i]改成p[i时,程序运行时有错误,为什么?*/
i--;
当chars[i]改成p[i时,程序运行时有错误,为什么?
2. char chars[5][7];
语句中的7是什么含义啊?
main()
{
int i,j;
char chars[5][7];
char *p[5]={chars[0],chars[1],chars[2],chars[3],chars[4]};
for(i=0;i<=4;i++)
{ printf("请输入字符串%d:",++i);
scanf("%s",chars[i]); /*chars[i]改成p[i时,程序运行时有错误,为什么*/
i--;
}
for(i=0;i<=4;i++)
{
printf("字符串%d:",++i);
printf("%s\n",*(p+i));
--i;
}
getch();
}
//程序有错,交换两处代码后排除!
//下面是正确的程序,回答见后!
#include <stdio.h>
void main()
{
int i,j;
char chars[5][7];
char *p[5]={chars[0],chars[1],chars[2],chars[3],chars[4]};
for(i=0;i<=4;i++)
{ printf("请输入字符串%d:",++i);
i--;//代码提前
scanf("%s",chars[i]); /*chars[i]改成p[i时,程序运行时有错误,为什么*/
}
for(i=0;i<=4;i++)
{
printf("字符串%d:",++i);
--i;//代码提前
printf("%s\n",*(p+i));
}
getch();
}
//chars[i]改成p[i]时,程序改正后,运行不会有错误,因为chars[i]与p[i]等价!
//语句中的7是表示字符串长度,每个字符串可以输入6个字符,
//最后一个用于存放'\0'
//下面是正确的程序,回答见后!
#include <stdio.h>
void main()
{
int i,j;
char chars[5][7];
char *p[5]={chars[0],chars[1],chars[2],chars[3],chars[4]};
for(i=0;i<=4;i++)
{ printf("请输入字符串%d:",++i);
i--;//代码提前
scanf("%s",chars[i]); /*chars[i]改成p[i时,程序运行时有错误,为什么*/
}
for(i=0;i<=4;i++)
{
printf("字符串%d:",++i);
--i;//代码提前
printf("%s\n",*(p+i));
}
getch();
}
//chars[i]改成p[i]时,程序改正后,运行不会有错误,因为chars[i]与p[i]等价!
//语句中的7是表示字符串长度,每个字符串可以输入6个字符,
//最后一个用于存放'\0'
温馨提示:答案为网友推荐,仅供参考