c - 所以我有这个代码,但它的某些部分不能正常工作
问题描述
所以损坏的部分在等级要求中,你能帮我解决吗?所以级别要求是 S 需要 80,A 需要 60,B 需要 40,C 需要 20,D 需要 10,E 需要 2。并且代码必须使用结构,我认为错误的部分在结构中。谢谢(只是不要阅读其余部分)
所以损坏的部分在等级要求中,你能帮我解决吗?所以级别要求是 S 需要 80,A 需要 60,B 需要 40,C 需要 20,D 需要 10,E 需要 2。并且代码必须使用结构,我认为错误的部分在结构中。所以损坏的部分在等级要求中,你能帮我解决吗?所以级别要求是 S 需要 80,A 需要 60,B 需要 40,C 需要 20,D 需要 10,E 需要 2。并且代码必须使用结构,我认为错误的部分在结构中。所以损坏的部分在等级要求中,你能帮我解决吗?所以级别要求是 S 需要 80,A 需要 60,B 需要 40,C 需要 20,D 需要 10,E 需要 2。并且代码必须使用结构,我认为错误的部分在结构中。所以损坏的部分在级别要求中,你能帮我解决吗?所以级别要求是 S 需要 80,A 需要 60,B 需要 40,C 需要 20,D 需要 10,E 需要 2。并且代码必须使用结构,我认为错误的部分在结构中。
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <windows.h>
struct Hero
{
char nama[50];
int level;
char job[10];
};
struct Quest
{
char nama[100];
int reward;
char ranking[2];
};
int main()
{
int pilih,jhero=1,jquest=1;
struct Hero hiro[10];
struct Quest questo[10];
do
{
system("cls");
printf("============================================\n");
printf(" HERO GUILD\n");
printf("============================================\n");
printf("1. Member Registration\n");
printf("2. Post a quest\n");
printf("3. Show all member\n");
printf("4. Show all quest\n");
printf("0. Exit\n");
printf("Input : ");
scanf("%d",&pilih);
fflush(stdin);
switch(pilih)
{
case 2 :
system("cls");
printf("============================================\n");
printf(" HERO GUILD - POST A QUEST\n");
printf("============================================\n");
printf("Title : "); gets(questo[jquest].nama);fflush(stdin);
printf("Reward <$>: ");scanf("%d",&questo[jquest].reward);fflush(stdin);
printf("Rank : ");scanf("%s",questo[jquest].ranking);fflush(stdin);
jquest++;
printf("Press Any Key To Continue...");
getch();
break;
case 4 :
system("cls");
int j;
printf("============================================\n");
printf(" HERO GUILD - QUEST\n");
printf("============================================\n");
for(j=1;j<jquest;j++)
{
printf("Quest-%d\n",j);
printf("Title\t: %s\n",questo[j].nama);
printf("Reward\t: %d\n",questo[j].reward);
printf("Rank\t: %s\n",questo[j].ranking);
printf("Level Requirement : >= ");
/*switch(questo[j].ranking)
{
case 'S' :printf("80\n\n");break;
case 'A' :printf("60\n\n");break;
case 'B' :printf("40\n\n");break;
case 'C' :printf("20\n\n");break;
case 'D' :printf("10\n\n");break;
case 'E' :printf("2\n\n");break;
}*/
}
printf("Press Any Key To Continue...");
getch();
break;
case 0 : return 0;
}
}while(1);
}
解决方案
该ranking
成员应该是一个单一的char
,所以这样声明它,然后这样阅读它并这样使用它:
// ...
struct Quest
{
char nama[100];
int reward;
char ranking; // Single-character rank
};
// ...
scanf(" %c", &questo[j].ranking); // Leading space to skip initial white-space
// TODO: Should really check what scanf returns
// ...
printf("Rank\t: %c\n",questo[j].ranking);
// ...
switch (questo[j].ranking)
{
case 'S':
// ...
default:
// TODO: Handle the case if the rank is incorrect
break;
}
// ...
推荐阅读
- arrays - 将每个包含文件路径的两个数组区分为第三个数组(用于删除)
- c# - 使用构造函数参数设置字段的冗余/清洁方式更少?
- visual-studio-code - 如何将日语文本输入到 Visual Studio Code?
- printing - 如何使用 Stimulsoft.Report.Web 打印 asp.net MVC
- python - Python AutoPep8 格式不适用于最大行长参数
- python-3.x - 任何人都可以指出这句话有什么问题吗?
- java - 优化 Java 中的 If- else if- else 语句
- ruby - 在类顶部调用的 Ruby 方法
- reactjs - 在同一个远程托管面板上从反应前端与 ASP.NET Core Web API 进行通信
- python - Python 中的矩阵使用 Numpy Python 给出错误的结果