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

标签 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`

最佳答案

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

下一步,因为用户将输入单个字符作为输入。

scanf("%c",&x) 应该适合你。

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

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

关于c - 我应该使用数组来存储多项选择a、b、c、d 的答案吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29382179/

相关文章:

c - 使用指针直接访问寄存器

c - 插入排序不起作用

php - 在 PHP 中将字符串拆分为 Unicode 字符数组的最佳方法是什么?

android - 带有自定义适配器的多项选择 AlertDialog

python - 根据N个数字类型选择10个项目

windows - DOS 批处理文件 - 显示带有两个选项的弹出消息

c - 在 xinu 中恢复中断 128 0x80

c - C中最严格的类型是什么意思?

android - 在android中合并两个byteArray

ruby-on-rails - ruby/rails 根据字符串数组对记录数组进行排序