c - 如何分配要存储到数组中的用户输入

标签 c arrays

我的挑战是编写一个程序,将用户的 GPA 作为浮点值存储在数组中。用户最多可以输入 30 个 GPA,并在输入每个值后根据需要显示平均值。我感到困惑的是如何在循环中使用 scanf() 函数将浮点值存储在数组中。谁能用示例代码解释一下吗?

好的,这就是我开始的代码。我知道这是假的,但我希望每个人都能更好地了解我正在编写的程序。我希望用户输入他们有多少 GPA。他们输入的数字将是我将拥有的数组的数量。

#include <stdio.h>
main()
{
    int loopcount = 0;
    int NumGpa = 0;
    NumGpa = 0 - 1;
    float = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25;
    int gpa[NumGpa] ={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};
    int i = 0;
    int total =0;

    printf("\t\tWelcome to the GPA calculator.\n ");
    printf("Please enter the number of classes you have counted for you GPA: ");
    scanf("%d", &NumGpa);

    while (loopcount &lt; NumGpa)
    {
        printf("\nenter your first GPA: ");
        scanf("%d", &1); //??????????????(i want loops to use scanf() if order &2,&3 ect?

        for (i=0; i&lt;gpa; i++)
        {
            total += arbin[NumGpa];
        }

        printf(" you average gpa is %d", NumGpa / ????);
        getchar();
    }
}

最佳答案

当您使用 scanf 读取 float 时,您会传递相关 float 的地址。您可以使用取址运算符 (&) 来获取数组中项目的地址,其方式与获取其他内容的方式大致相同。

或者,您可以稍微简化一下事情。在C中,下标运算符([])相当于指针操作。特别是,a[b] 相当于*(a+b)。但是, &* 几乎完全相反,因此在这种情况下它们最终会相互抵消。因此,如果您愿意,可以只使用 a+b,其中一个是数组的名称,另一个是要读取的数组中项目的索引。

关于c - 如何分配要存储到数组中的用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4999827/

相关文章:

c++ - C/C++ 中的等式

c - 通过编辑 omni.ja 移动 Firefox 13 的起始页元素会导致 FF 崩溃,有人知道如何正确执行此操作吗?

python - numpy 数组乘法比带向量乘法的循环慢?

javascript - 迭代json数组并将每个值推送到angular js中的列表

java - 如何每行显示10个数字? -初学者-

c - xlib 将窗口推到其他窗口的后面

c - c 的另一个阶乘选项

c - Interbench 基准代码

php - 选择然后再次选择不同的值

java - 用下一个空白空间填充数组?