#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <assert.h>
#include <ctype.h>
#include <time.h>
int main() {
char WORDS[10][20] = { "Apple","Banana","Cucumber","Dumpling","Eggplant","Fish","Garlic","Ham","Icecream","Jellies" };
int num;
printf("Enter the number of words to guess (<=10):");
scanf("%d", &num);
int countnum[20];
int i;
srand(time(NULL));
for (i = 0; i < num; i++)
{
countnum[i] = strlen(WORDS[i]);
printf("%s\n", WORDS[i]);
}
printf("\n");
char again = 'y';
while (again == 'y') {
int x = rand() % (num);
int life = 5;
char guess[20];
printf(" +------------------+\n");
printf(" | |\n");
printf(" | |\n");
for (i = 0; i < 10; i++)
{
printf(" |\n");
}
printf("================================\n");
printf("Word:");
char new[20];
//这里出错显示应输入标识符
for (i = 0; i < countnum[x]; i++)
{
new[i] = '_';
}
for (i = 0; i < countnum[x]; i++)
{
printf(" %c", new[i]);
}
printf("\n\n");
while (life > 0)
{
printf("Guess (%d lives): ", life);
scanf("%s", guess);
printf("\n");
if (strlen(guess) != 1)
{
if (strlen(guess) == strlen(WORDS[x]))
{
int judge = 0;
for (i = 0; i < countnum[x]; i++)
{
if (guess[i] != WORDS[x][i])
{
break;
}
judge++;
}
if (judge == countnum[x])
{
printf("Correct!\n");
printf("Do you want to play again (y/n)? ");
scanf(" %c", &again);
break;
}
}
printf("Word:");
for (i = 0; i < countnum[x]; i++)
{
printf(" %c", new[i]);
}
printf("\n\n");
life--;
}
else
{
printf("Word:");
if (strstr(WORDS[x], guess) != NULL)
{
for (i = 0; i < countnum[x]; i++)
{
if (guess[0] == (char)WORDS[x][i])
{
new[i] = guess[0];
}
}
int correct = 0;
for (i = 0; i < countnum[x]; i++)
{
if (new[i] != '_')
{
correct++;
continue;
}
break;
}
for (i = 0; i < countnum[x]; i++)
{
printf(" %c", new[i]);
}
printf("\n\n");
if (correct == countnum[x]) {
printf("Correct!\n");
printf("Do you want to play again? ");
scanf("%c", &again);
break;
}
}
else
{
for (i = 0; i < countnum[x]; i++)
{
printf(" %c", new[i]);
}
printf("\n\n");
}
life--;
if (life == 4)
{
printf(" +------------------+\n");
printf(" | |\n");
printf(" | |\n");
printf(" | O\n");
for (i = 0; i < 9; i++)
{
printf(" |\n");
}
printf("================================\n");
}
if (life == 3)
{
printf(" +------------------+\n");
printf(" | |\n");
printf(" | |\n");
printf(" | O\n");
printf(" | |\n");
for (i = 0; i < 8; i++)
{
printf(" |\n");
}
printf("================================\n");
}
if (life == 2)
{
printf(" +------------------+\n");
printf(" | |\n");
printf(" | |\n");
printf(" | O\n");
printf(" | /|\n");
for (i = 0; i < 8; i++)
{
printf(" |\n");
}
printf("================================\n");
}
if (life == 1)
{
printf(" +------------------+\n");
printf(" | |\n");
printf(" | |\n");
printf(" | O\n");
printf(" | /|\\ \n");
for (i = 0; i < 8; i++)
{
printf(" |\n");
}
printf("================================\n");
}
}
}
if (life == 0) {
printf(" +------------------+\n");
printf(" | |\n");
printf(" | |\n");
printf(" | O\n");
printf(" | /|\\ \n");
printf(" | / \\ \n");
for (i = 0; i < 7; i++)
{
printf(" |\n");
}
printf("================================\n");
}
printf("You have no more lives!\n");
printf("Do you want to play again (y/n)? ");
scanf(" %c", &again);
}
exit(1);
}
new后面出错显示应输入标识符
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Cat_贰龄依旧 2021-11-26 16:56关注
new 是 C++ 的关键字, 不可以用它作为变量名, 所以编译出错;
可以将 "char new[20]" 改为 "char New[20]" 或 "char ch_new[20]" 等, 后面的 new 也做相应修改.
朋友想用动态内存的话, 可以写成:char* ch_new = new char[20]; // 动态分配内存, 变量名叫 ch_new. // 最后还要加上: delete[] ch_new;
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥16 mybatis的代理对象无法通过@Autowired装填
- ¥15 可见光定位matlab仿真
- ¥15 arduino 四自由度机械臂
- ¥15 wordpress 产品图片 GIF 没法显示
- ¥15 求三国群英传pl国战时间的修改方法
- ¥15 matlab代码代写,需写出详细代码,代价私
- ¥15 ROS系统搭建请教(跨境电商用途)