C 这个计划成功吗?

C 这个计划成功吗?,c,C,我只是想知道我是否正确地格式化了这个程序,以便执行要求我做的事情 问题是:上面显示的计数算法构成了简单高效排序算法的基础。给定一组正整数,我们可以构造一个表,列出每个整数出现的次数,然后使用计数信息按从最小到最大的顺序打印整数列表 使用这种方法构造一个程序,该程序打开一个包含正整数列表的文件,对整数进行排序,然后将它们写回第二个文件。您可以假设没有一个整数大于100000 计数算法如下所示: void gatherCounts(int A[], int N, int counts[]) {

我只是想知道我是否正确地格式化了这个程序,以便执行要求我做的事情

问题是:上面显示的计数算法构成了简单高效排序算法的基础。给定一组正整数,我们可以构造一个表,列出每个整数出现的次数,然后使用计数信息按从最小到最大的顺序打印整数列表

使用这种方法构造一个程序,该程序打开一个包含正整数列表的文件,对整数进行排序,然后将它们写回第二个文件。您可以假设没有一个整数大于100000

计数算法如下所示:

void gatherCounts(int A[], int N, int counts[]) {
    int n;
    for(n = 0; n < 10; n++)
        counts[n] = 0;
    for(n = 0; n < N; n++)
        counts[A[n] - 1]++;
}
void gatherCounts(int A[],int N,int counts[]{
int n;
对于(n=0;n<10;n++)
计数[n]=0;
对于(n=0;n
这是一组不大于10的数字,因此我试图解决这个问题:

#include <stdio.h>

void gatherCounts(int A[], int N, int counts[]) {
    FILE *input;
    int n;
    input = fopen("numbers.txt", "r");
    while(!feof(input)) {
        for(n = 0; n < 100000; n++)
            counts[n] = 0; 
        for(n = 0; n < N; n++)
            counts[A[n] - 1]++;
    }
    fclose(input);
    return 0;
}
#包括
无效计数(整数A[],整数N,整数计数[]){
文件*输入;
int n;
输入=fopen(“numbers.txt”,“r”);
而(!feof(输入)){
对于(n=0;n<100000;n++)
计数[n]=0;
对于(n=0;n

这应该读取一个名为“numbers”的文件,对文件中的整数进行排序,然后将它们写回第二个文件。请让我知道这是否正确,如果有,我的问题在哪里。谢谢

给定的函数求数组中每个整数的总数。每个总数的偏移量是正在计数的数字。只需输入、长度和输出即可:

int main(void) {
    int A[] = {8, 4, 6, 8, 1, 4, 8, 5, 7, 9};
    int N = 10;
    int counts[10];
    int n0, n1;
    memset(counts, 0, 10);
    gatherCounts(A, N, counts);
    for (n0 = 0; n0 < N; n0++) {
        for (n1 = 0; n1 < counts[n0]; n1++)
            printf("%d ", n0 + 1);
    }
    printf("\n");
    return 0;
}
int main(无效){
inta[]={8,4,6,8,1,4,8,5,7,9};
int N=10;
整数计数[10];
int n0,n1;
memset(计数,0,10);
计数(A、N、计数);
对于(n0=0;n0

确保做更多的研究,当然,在问更多类似的问题之前,使用输出测试您的代码。

您不认为您应该在某个时候从输入文件中读取一些内容,并在某个时候创建一些输出吗?我的意思是,你确实试过运行这个程序,但发现它不工作(甚至没有终止),对吗?好吧,它会输出你所期望的吗?在任何时候你都不会从文件中读取任何内容,所以(!feof(input)){…}
将永远循环,因为文件指针将保持在文件的开头。当您添加代码来读取文件时,如果它是文本文件,则必须将文本(C字符串)转换为整数。在本研究中,我们将对本研究的一个城市,以及其他城市的一个城市的一个城市的一个城市的一个城市的城市的一个城市的一个城市的一个城市的一个城市的一个城市的一个城市的一个城市的一个城市的一个城市的城市,以及其他城市的城市的一个城市的一个城市的城市,以及其他城市的城市的一个城市的城市的一个,以及以及其他的城市的城市的城市的城市的一个城市的城市的一个,以及以及城市的城市的城市的城市的城市的城市的一个,以及以及以及城市的城市的城市的城市的城市的城市的城市,以及城市的城市的城市的城市的,以及以及以及城市的城市的城市的城市的城市的一个本本本本本本研究,以及本本研究,以及本本研究,以及本本本本研究的城市的城市的城市的城市的城市的自自自自自自能够能够能够能够能够能够能够能够能够能够能够能够能够能够7.0奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈;l̶e̶s̶(固定)编写程序的通常流程图是:1。写点什么;2.它能正常工作吗?2a。否->转到1;2b。是->退出(成功);你似乎被1卡住了。你测试过这个代码吗?