所以我有这个代码,但它的某些部分不能很好地工作

时间:2018-05-02 10:13:32

标签: c

所以破碎的部分符合等级要求,你能帮我解决一下吗? 所以级别要求是S需要80,A需要60,B需要40,C需要20,D需要10,E需要2。 并且代码必须使用struct 而且我认为错误的部分是在它自己的结构中。 谢谢(只是不读其余的)

所以破碎的部分符合等级要求,你能帮我解决一下吗? 所以级别要求是S需要80,A需要60,B需要40,C需要20,D需要10,E需要2。 并且代码必须使用struct 而且我认为错误的部分是在它自己的结构中。 所以破碎的部分符合等级要求,你能帮我解决吗? 所以级别要求是S需要80,A需要60,B需要40,C需要20,D需要10,E需要2。 并且代码必须使用struct 而且我认为错误的部分是在它自己的结构中。 所以破碎的部分符合等级要求,你能帮我解决吗? 所以级别要求是S需要80,A需要60,B需要40,C需要20,D需要10,E需要2。 并且代码必须使用struct 而且我认为错误的部分是在它自己的结构中。 所以破碎的部分符合等级要求,你能帮我解决吗? 所以级别要求是S需要80,A需要60,B需要40,C需要20,D需要10,E需要2。 并且代码必须使用struct 而且我认为错误的部分是在它自己的结构中。

#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);
 }

1 个答案:

答案 0 :(得分:0)

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;
}

// ...