我正在为计算机科学入门课准备一套习题,对于我应该如何使用该程序感到有些困惑。问题是:在一个文件中,有一个田径比赛一些参与者的得分列表。该列表是按照参赛者报名参加比赛的顺序组织的,而不是按照得分的顺序组织的。一个单独的文件包含一组范围。您的工作是编写一个程序,该程序可以读取这两个文件中的数据,并打印一张表,显示有多少参与者属于每个给定范围。

这个问题是逐词复制的,但是我对此问题有几个疑问。如果您可以发表评论以表明您对以下内容的看法,那将是不错的选择:

1)好吧,所以我写了一些代码以便从第一个数据文件中读取数字,将数字放置在数组A中,并返回读取的数字数或N的计数,以较小者为准。如下所示:

#include <stdio.h>

int readNumbers(FILE* input, int A[], int N)
{
    int n;
    n = 0;
    while (n < N&&!feof(input))
    {
        fscanf_s(input, "%f", &A[n]);
        n++;
    }
    return n;
}
int count(const int A[], int N, int low, int high){

}


2)我的困惑在于使用第二个函数来计算数组A中有多少个数字在从低到高(包括端值)的范围内。参数N告诉您数组中有多少个数字。并使用这两个函数来构造并打印一张表,列出第二个文件中给定的每个类别中有多少参与者。

现在,我试图通过它自己进行交谈,我现在更加困惑。也许我只是让这个问题变得更加困难。任何提示都会有所帮助。谢谢

最佳答案

计算数组A中有多少个数字,范围从低到高(包括端值)。


count()可以这样实现

int count(const int A[], int N, int low, int high){
        int i, cnt;

        for (i = cnt = 0; i < N; i++) {
                if (low <= A[i] && A[i] <= high)
                        cnt++;
        }
        return cnt;
}


  使用这两个函数来构造并打印一张表,列出第二个文件中给定的每个类别中有多少参与者。


您可以使用一个简单的循环来实现

for (i = 0; i < number_of_categories; i++) {
        printf("%d - %d : %d\n", low[i], high[i],
                        count(A, N, low[i], high[i]));
}


假设您已经将所有这些类别信息放入low[]high[]

关于c - 可以计算数组A中有多少个数字的函数,范围从低到高。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22367690/

10-09 23:17