user-0 提问: 思维迟钝的阿怪前来请教

回复:
user: user-1
content: 中文和英文没有区别，字符串比较请用strcmp

user: user-0
content: 引用 5 楼 自信男孩 的回复:if (xia->name=="结束") { goto shuchu; }   这个地方要用strcmp或者memcmp  十分感谢，敢问可以给下微信或者QQ等联系方式吗，我想能多跟你们这样的前辈取取经

user: user-0
content: 引用 4 楼 自信男孩 的回复:/*************************************************************************   > File Name: a.cpp   > Author: ma6174   > Mail: ma6174@163.com    > Created Time: 2017年08月21日 星期一 22时27分21秒  ************************************************************************/  #include <stdio.h> #include <stdlib.h> #include <string.h>  #define SHULIANG 5  struct data{ 	int chengji;   //储存成绩 	char name[20];   //储存姓名 	struct data *next;   //指向改结构的下一个元素的指针 };  struct data *tou;   //头指针：用于回到最初位子 struct data *xin;   //新指针：用于建立新的节点   int main(void) { 	tou=NULL; 	xin=NULL;  	for (int a=1;a<=SHULIANG;a++) 	{    		xin=(struct data *)malloc(sizeof(struct data));     //创建一个新节点 		xin->next = tou;  //新节点的指针指向NULL，说明只增加了一个节点 		tou = xin; 		printf("\n请输入你的名字："); 		scanf("%s", xin->name); 		/* 		if (xin->name ==NULL)   //invalid codes 		{ 			exit(1); 		} 		*/ 		while(1) 		{ 			printf("\n请输入你的成绩(0-100)："); 			//scanf("%d", xin->chengji); 			scanf("%d", &xin->chengji); 			if (xin->chengji <=100 && xin->chengji >= 0) 			{ 				break; 			} 		} 	}  	xin = tou; 	while(xin!=NULL) 	{ 		printf("%d的成绩为：%s\n",xin->chengji, xin->name); 		xin = xin->next;    //move the pointer 	}   	return 0;  }    供参考  昨天自己弄了好久 现在已经能实现目的了，感谢大佬赐教，这个点数要怎么给你

user: user-0
content: 引用 3 楼 niiiloc 的回复:中文和英文没有区别，字符串比较请用strcmp明白了  谢谢大佬赐教，昨天一直在纠结该怎么比较字符串类型的，如果是普通一堆普通字符还可以用数组逐个比较，中文的话只能用strcmp来判断是否==0了。

user: user-2
content: if (xia->name=="结束") { goto shuchu; }   这个地方要用strcmp或者memcmp

user: user-2
content: /*************************************************************************   > File Name: a.cpp   > Author: ma6174   > Mail: ma6174@163.com    > Created Time: 2017年08月21日 星期一 22时27分21秒  ************************************************************************/  #include <stdio.h> #include <stdlib.h> #include <string.h>  #define SHULIANG 5  struct data{ 	int chengji;   //储存成绩 	char name[20];   //储存姓名 	struct data *next;   //指向改结构的下一个元素的指针 };  struct data *tou;   //头指针：用于回到最初位子 struct data *xin;   //新指针：用于建立新的节点   int main(void) { 	tou=NULL; 	xin=NULL;  	for (int a=1;a<=SHULIANG;a++) 	{    		xin=(struct data *)malloc(sizeof(struct data));     //创建一个新节点 		xin->next = tou;  //新节点的指针指向NULL，说明只增加了一个节点 		tou = xin; 		printf("\n请输入你的名字："); 		scanf("%s", xin->name); 		/* 		if (xin->name ==NULL)   //invalid codes 		{ 			exit(1); 		} 		*/ 		while(1) 		{ 			printf("\n请输入你的成绩(0-100)："); 			//scanf("%d", xin->chengji); 			scanf("%d", &xin->chengji); 			if (xin->chengji <=100 && xin->chengji >= 0) 			{ 				break; 			} 		} 	}  	xin = tou; 	while(xin!=NULL) 	{ 		printf("%d的成绩为：%s\n",xin->chengji, xin->name); 		xin = xin->next;    //move the pointer 	}   	return 0;  }    供参考

user: user-0
content: 引用 1 楼 niiiloc 的回复:简单看了下，问题很多 1. scanf("%d", &xin->chengji); 2.  while(xin!=NULL) {    printf("%s的成绩为：%d",xin->name,xin->chengji);  xin = xin->next; }  引用 1 楼 niiiloc 的回复:简单看了下，问题很多 1. scanf("%d", &xin->chengji); 2.  while(xin!=NULL) {    printf("%s的成绩为：%d",xin->name,xin->chengji);  xin = xin->next; }    谢谢大佬回复，我昨天自己搞了一下已经能实现一开始的设定了，现在我想增加一个功能就是在用户输入名字的时候，输入了“结束”，如果第一次输入的时候就输入了“结束”，则结束程序，其他时候输入“结束”则跳到输出语句，输出已经输入的数据，  这个验证功能一直实现不了，我能实现字符的验证，但是中文的我还不会。麻烦大佬指点指点 #include <stdio.h> #include <stdlib.h> #include <string.h>  #define SHULIANG 5  struct data{ 	int yuwen;								  //储存成绩 	int shuxue; 	int yinyu; 	int dili; 	char name[20];							  //储存姓名 	struct data *next;						  //指向改结构的下一个元素的指针 };  struct data *tou;							  //头指针：用于回到最初位子 struct data *xin;							  //新指针：用于建立新的节点 struct data *xia;							  //下指针：用来指向下一个节点 int main(void) { 	tou=NULL; 	xin=NULL; 	xia=NULL;  	xin=(data*)malloc(sizeof(struct data));     //创建一个新节点 	printf("请输入你的姓名："); 	scanf("%s",&xin->name); 	if (xin->name[0]=='结' && xin->name[1]=='束' && xin->name[2]=='\0') 	{ 		exit(0); 	} 	printf("请输入你的成绩：\n语文："); 	scanf("%d",&xin->yuwen); 	printf("数学："); 	scanf("%d",&xin->shuxue); 	printf("英语："); 	scanf("%d",&xin->yinyu); 	printf("地理："); 	scanf("%d",&xin->dili); 	xin->next=NULL; 	tou=xin;  	for (int a=1;a<SHULIANG;a++) 	{   	 			xia=(data*)malloc(sizeof(struct data)); 			printf("请输入你的姓名："); 			scanf("%s",&xia->name); 			if (xia->name=="结束") 			{ 				goto shuchu; 			}  			printf("请输入你的成绩：\n语文："); 			scanf("%d",&xia->yuwen); 			printf("数学："); 			scanf("%d",&xia->shuxue); 			printf("英语："); 			scanf("%d",&xia->yinyu); 			printf("地理："); 			scanf("%d",&xia->dili); 			xia->next=NULL; 			xin->next=xia; 			xin=xin->next;  	} 	xin=tou;  shuchu: 	while(xin!=NULL) 	{ 	   printf("%s的成绩为：语文：%d，数学：%d，英语：%d，地理：%d\n",xin->name,xin->yuwen,xin->shuxue,xin->yinyu,xin->dili); 	   xin=xin->next; 	} 	return 0; }  这是我的代码

user: user-1
content: 简单看了下，问题很多 1. scanf("%d", &xin->chengji); 2.  while(xin!=NULL) {    printf("%s的成绩为：%d",xin->name,xin->chengji);     xin = xin->next; }