本帖最后由 就是要努力呀 于 2020-3-15 12:22 编辑
你的代码问题很多,全是警告和错误,你的编译器没有提醒你吗#include <stdio.h>
#define MAX 1024
int main(void)
{
char *ch[] = {"彩虹","工厂","end"};
char *en[128] = {"rainbow","factory","end"}; //en[128] 你的这个数组指针里面有128个指针吗
int i,n = 0;
for(i = 0; i < 1024; i++)
{
char *b = en; 错误用法,指针指向数组指针应该用二重指针 光是这里就是错误,编译都不通过 char **b = en;
char *a = ch; 同上
printf("%s :",ch); 你要打印ch中的哪个值,ch有三个值,你到底要打印哪一个,如果你打印彩虹就printf("%s", *ch); 这些错误你自己没有发现吗,你的printf根本就没有打印ch的值
scanf("%s",a); 错误用法,不能用scanf给char 型的指针赋值,你可以在初始化char型指针的时候给它赋值,但不能用scnaf给它让用户输入值,要用就用字符数组
do
{
printf("%s :",ch); 同上
scanf("%s",a); 同上
}while(*a != *b);
if(ch[i+1]=="end")
{
printf("程序结束!\n");
system("pause");
}
}
return 0;
}
综上你把代码的数组指针换成数组就ok了 |