我应该使用数组来存储多项选择a,b,c,d的答案吗?

时间:2015-04-01 03:04:23

标签: c arrays multiple-choice

C计划 我是一个完整的初学者。我想为我的学生制作一个多项选择词汇练习课程。我不想创建4个单独的变量a,b,c,d。 我怎样才能使用数组?或者什么是存储4个字符a,b,c,d的更好方法,并在每次我希望程序检查问题是否正确时引用它们。请查看我目前使用的代码。任何帮助,我真的很感激。谢谢。

int main (void)
{    
    char s;
    const char *answer[3];
    answer[0]="a";
    answer[1]="b";
    answer[2]="c";
    answer[3]="d";
    int i=0;
    float count;


    printf (" Listo para empezar?\n\n Please type 's' for si or 'n' for no.\n");
    scanf ("%c",&s);
          if (s='s'){
                printf ("Bueno. Ya Empezamos!");
                }   

    for (count=0;count<=4;count++){
        printf ("1.Que significa la palabra 'conocer'\n");
        printf ("a.\t to like b.\t to know\t c. to do\t d. to eat\n");

        /*Where I need help"*/
        scanf ("%s",&answer);
        if (answer =answer[1])
        {
        printf ("Correcto!\n");
        }
       else {
       printf ("Equivocado!\n 'conocer'significa: to know\n")
       }`enter code here`

1 个答案:

答案 0 :(得分:1)

将数组声明为char answer[4]应该足够而不是const char *answer[3]。数组从 0 n-1 开始编制索引,其中n是您要保留的项目数。因此,当你声明一个数组时,它的大小应为n,当你访问某个值时,在第i个位置,它的索引实际上是i-1,你已经正确地完成了。

接下来,因为用户将输入单个字符作为输入。

scanf("%c",&x)应该可以正常使用。

通过执行scanf("%s",&answer),您将覆盖存储在实际答案数组中的值。所以你应该把输入放在一个单独的字符变量中说x,就像我在上面的例子中所做的那样。然后,您只需将x语句中的if值与if(x == answer[1])进行比较。

虽然我不确定您将如何生成问题并更改正确的选项,但是检查正确答案的部分代码将取决于此。