user-0 提问: C语言猜数字游戏

回复:
user: user-0
content: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h>   #define OK         0 #define SHORT      1 #define DUPLICATE  2 #define NONNUMERIC 3   #define SIZE 5     /*定义变量及函数*/ void c_input(char *str, int size) {     int i, j, flag, len;     /*检测输入是否合法*/     do{         flag = OK;         scanf("%s", str);         rewind(stdin);         len = strlen(str);         if(len < size) {             printf("长度不足，请重新输入：\n");             flag = SHORT;             continue;         }           for(i=0; i<size && flag==OK; i++) {             if(str[i]<'0' || str[i]>'9') {                 printf("含非数字字符，请重新输入：\n");                 flag = NONNUMERIC;                 break;             }             for(j=0; j<size; j++) {                 if(str[i] == str[j] && i != j) {                     printf("含重复字符，请重新输入：\n");                     flag = DUPLICATE;                     break;                 }             }         }     }while(flag != OK);     str[size] = '\0';     return; }   /*显示帮助信息*/ void c_help() {     system("cls");     printf("\t\t\t\t※游戏帮助※");     printf("\n    本游戏由电脑自动生成五个不重复数字，由玩家来猜；游戏开始后，");     printf("\n    玩家输入五个不重复的数字，输入后会有提示XAYB， X表示有几个");     printf("\n    数字与答案数字相同且位置相同。 Y表示有几个数字与答案数字相");     printf("\n    同但位置不正确。例如：答案数字是3792，如果输入9786，则会提");     printf("\n    示1A1B。玩家总共有十次机会来猜数字。");     printf("\n\n\n\t\t\t\t\t\t祝您游戏愉快!");     printf("\n\n请按任意键返回主菜单……");     getchar();     return; }     /*游戏部分*/ /*定义变量及函数*/ void c_game(const char *temp) {     int i, j, ci; 	char nickname; 	printf("请输入你的昵称:"); 	nickname=getchar();     static score = 0;     char in[SIZE + 1];     char out[5]="0A0B";     for(ci=0; ci<10; ci++) {         printf("第 %d 次输入，你总共有10次机会：",ci + 1);         c_input(in, SIZE);         if(strcmp(in, temp) == 0) {             score += 100;             printf("恭喜您，加一百分!\n您的总分为%5d", score);             printf("\n请按任意键返回主菜单…");             getchar();             return;         }         for(i=0; i<SIZE; i++) {             if(in[i] == temp[i])                 out[0]++;             else                 for(j=0; j<SIZE; j++)                     if(in[i] == temp[j])                         out[2]++;         }         printf("%s\n",out);                   out[0] = '0';         out[2] = '0';     }     printf("很遗憾，您的机会用完了，再接再厉哦!");     printf("\n请按任意键返回主菜单……");     getchar();     return; }       void c_rand(char *str) {     int i, j;     char data[] = "0123456789";     system("cls");     srand(time(NULL));     printf("\t\t\t\t※猜数字游戏中※\n\n");     /*电脑自动生成5个不重复数字*/     for(i=0; i<SIZE; i++) {         j = rand() % (10 - i);         str[i] = data[j];         data[j] = data[10 - i - 1];     }     c_game(str);     return; }      void c_jifenbang(char *str){ 	//查看积分榜//     char F; 	system("cls"); 	printf("\t\t\t\t※查看积分榜※\n\n"); 	printf("用户%c的积分为%5d,nickname,score"); 	printf("\n\n\n按F返回菜单"); 	scanf("%c",&F); 	if F=F, 	return 0 	 }    void c_test(char *str) {     /*用户自己设置数字来测试游戏*/     system("cls");     printf("\t\t\t\t※测试模式※\n\n");     printf("请输入测试数据：");     /*检测用户输入的数据是否符合要求*/     c_input(str, SIZE);     /*系统根据玩家设定的数据展开游戏测试*/     system("cls");     printf("\t\t\t\t※测试模式※\n\n");     c_game(str);     return; }       int main() {     char str[80];     char ch;     char choice;     while(1) {                system("cls");         printf("\n          猜数字游戏         ");         printf("\n\t\t1、【进入游戏】");         printf("\n\t\t2、【测试模式】");         printf("\n\t\t3、【游戏帮助】");         printf("\n\t\t4、【查看积分】");         printf("\n\t\t5、【退出游戏】");         printf("\n请选择（1-5） : ");         choice = getchar();         fflush(stdin);         system("cls");         switch(choice)         {         case '1':             printf("***游戏模式***\n");             c_rand(str);             break;         case '2':             printf("***测试模式***\n");             c_test(str);             break;         case '3':             printf("***帮助***\n");             c_help(); 			break;         		case '4':             printf("***查看积分榜***\n");             c_jifenbang(); 			break;         case '5':             printf("你确定要退出吗？(y/n):");             ch = getchar();             if(ch == 'y' || ch == 'Y')                 exit(0);         }     }     return 0; }     帮忙修改一下这个版本

user: user-1
content: 求散分！ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h>  #define OK         0 #define SHORT      1 #define DUPLICATE  2 #define NONNUMERIC 3  #define SIZE 5   /*定义变量及函数*/ void c_input(char *str, int size) { 	int i, j, flag, len; 	/*检测输入是否合法*/ 	do{ 		flag = OK; 		scanf("%s", str); 		rewind(stdin); 		len = strlen(str); 		if(len < size) { 			printf("长度不足，请重新输入：\n"); 			flag = SHORT; 			continue; 		}  		for(i=0; i<size && flag==OK; i++) { 			if(str[i]<'0' || str[i]>'9') { 				printf("含非数字字符，请重新输入：\n"); 				flag = NONNUMERIC; 				break; 			} 			for(j=0; j<size; j++) { 				if(str[i] == str[j] && i != j) { 					printf("含重复字符，请重新输入：\n"); 					flag = DUPLICATE; 					break; 				} 			} 		} 	}while(flag != OK); 	str[size] = '\0'; 	return; }  /*显示帮助信息*/ void c_help() { 	system("cls"); 	printf("\t\t\t\t※游戏帮助※"); 	printf("\n    本游戏由电脑自动生成五个不重复数字，由玩家来猜；游戏开始后，"); 	printf("\n    玩家输入五个不重复的数字，输入后会有提示XAYB， X表示有几个"); 	printf("\n    数字与答案数字相同且位置相同。 Y表示有几个数字与答案数字相"); 	printf("\n    同但位置不正确。例如：答案数字是3792，如果输入9786，则会提"); 	printf("\n    示1A1B。玩家总共有十次机会来猜数字。"); 	printf("\n\n\n\t\t\t\t\t\t祝您游戏愉快!"); 	printf("\n\n请按任意键返回主菜单……"); 	getchar();     return; }   /*游戏部分*/ /*定义变量及函数*/ void c_game(const char *temp) { 	int i, j, ci; 	static score = 0; 	char in[SIZE + 1]; 	char out[5]="0A0B"; 	for(ci=0; ci<10; ci++) { 		printf("第 %d 次输入，你总共有10次机会：",ci + 1); 		c_input(in, SIZE); 		if(strcmp(in, temp) == 0) { 			score += 100; 			printf("恭喜您，加一百分!\n您的总分为%5d", score); 			printf("\n请按任意键返回主菜单…"); 			getchar(); 			return; 		} 		for(i=0; i<SIZE; i++) { 			if(in[i] == temp[i]) 				out[0]++; 			else 				for(j=0; j<SIZE; j++) 					if(in[i] == temp[j]) 						out[2]++; 		} 		printf("%s\n",out); 		 		out[0] = '0'; 		out[2] = '0'; 	} 	printf("很遗憾，您的机会用完了，再接再厉哦!"); 	printf("\n请按任意键返回主菜单……"); 	getchar(); 	return; }   void c_rand(char *str) { 	int i, j; 	char data[] = "0123456789"; 	system("cls"); 	srand(time(NULL)); 	printf("\t\t\t\t※猜数字游戏中※\n\n"); 	/*电脑自动生成5个不重复数字*/ 	for(i=0; i<SIZE; i++) { 		j = rand() % (10 - i); 		str[i] = data[j]; 		data[j] = data[10 - i - 1]; 	} 	c_game(str); 	return; }   void c_test(char *str) { 	/*用户自己设置数字来测试游戏*/ 	system("cls"); 	printf("\t\t\t\t※测试模式※\n\n"); 	printf("请输入测试数据："); 	/*检测用户输入的数据是否符合要求*/ 	c_input(str, SIZE); 	/*系统根据玩家设定的数据展开游戏测试*/ 	system("cls"); 	printf("\t\t\t\t※测试模式※\n\n"); 	c_game(str); 	return; }   int main() { 	char str[80]; 	char ch; 	char choice; 	while(1) {		 		system("cls"); 		printf("\n          猜数字游戏         "); 		printf("\n\t\t1、【进入游戏】"); 		printf("\n\t\t2、【测试模式】"); 		printf("\n\t\t3、【游戏帮助】"); 		printf("\n\t\t4、【退出游戏】"); 		printf("\n请选择（1-4） : "); 		choice = getchar(); 		fflush(stdin); 		system("cls"); 		switch(choice) 		{ 		case '1': 			printf("***游戏模式***\n"); 			c_rand(str); 			break; 		case '2': 			printf("***测试模式***\n"); 			c_test(str); 			break; 		case '3': 			printf("***帮助***\n"); 			c_help(); break; 		case '4': 			printf("你确定要退出吗？(y/n):"); 			ch = getchar(); 			if(ch == 'y' || ch == 'Y') 				exit(0); 		} 	} 	return 0; }

user: user-0
content: 给我做做呗，多多感谢啊

user: user-2