c - 为什么我仍然收到这些错误?

标签 c arrays function generator

因此,在这个实验室中,我们应该创建一个随机数生成器,以在 int 数组中生成至少 100 个整数。我相信我的代码中可能有一些错误,但我的编译器上出现了 57 个错误,而且我只是没有看到那么多错误。下面的代码有什么问题?

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int min, max, lowest = 0, highest = 0;
float average;
int randoms [100];

int main()
{       
    printf("Enter a minimun value.\n");
    scanf("%d",&min);
    printf("Enter a maximum value.\n");
    scanf("%d",&max);
    srand(10);
    for(int i = 0; i < 100; i++)
    {
        randoms[i] = (rand() % ((max-min)+1) + min); 
    }
    output();
    lowest();
    highest();
    average();
}

void output()
{
    for(int i = 0; i<101; i++)
    {
        if(i % 10 == 0)
        {
            printf(randoms[i]);
            printf("\n");
        }
        else
        {
            printf(randoms[i]);
        }
    }
}

int lowest()
{
    for(int i = 0; i > 101; i++)
    {
        if(randoms [i] < min) //finds the lowest value of array
        {
            min = randoms[i];
        }
    }
    printf("The lowest value is: %d", %min);
    return min;
}

int highest()
{
    for(int i = 0; i > 100; i++)
    {
        if(randoms[i] > max)
        {
            max = randoms[i];
        }
    }
    printf("The highest value is: %d", &max);
    return max;
 }

float average()
{
    int sum = 0;
    int count = 0;
    for(int i = 0; i > 100; i++)
    {
        count++;
        sum += randoms[i];
    }
    average = sum/count;
    printf("The average value is: %d", &average);
    return average;
}

最佳答案

首先是函数应该在使用之前声明。我看到你试图这样做,但你将它们声明为变量,这是错误的。第二:学习如何使用printf函数,它有太多错误。这里:

printf("The highest value is: %i", &max);

您正在尝试打印变量的地址而不是变量本身。

此外,由于您使用 C 语言而不是 C++ 进行编程,因此您无法在函数中间的某个位置声明变量,因此您应该声明所使用的 i在开始时循环。

您还在函数 average() 中使用了一个与函数同名的变量,因此发生了冲突。我在函数体内重新声明了它,就像 float ret 一样。

这就是你的代码应该如何编译(但请注意,我没有检查逻辑错误,只是让它编译)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int min, max;
int randoms [100];

void output();
int lowest();
int highest();
float average();

int main()
{
    int i=0;
    printf("Enter a minimun value.\n");
    scanf("%d",&min);
    printf("Enter a maximum value.\n");
    scanf("%d",&max);
    srand(10);
    for(; i < 100; i++)
    {
        randoms[i] = (rand() % ((max-min)+1) + min);
    }
    output();
    lowest();
    highest();
    average();
    return 0;
}

void output()
{
    int i=0;
    for(; i<101; i++)
    {
        if(i % 10 == 0)
        {
            printf("%i\n", randoms[i]);
        }
        else
        {
            printf("%i\n", randoms[i]);
        }
    }
}

int lowest()
{
    int i=0;
    for(; i > 101; i++)
    {
        if(randoms [i] < min) //finds the lowest value of array
        {
            min = randoms[i];
        }
    }
    printf("The lowest value is: %i", min);
    return min;
}

int highest()
{
    int i=0;
    for(; i > 100; i++)
    {
        if(randoms[i] > max)
        {
            max = randoms[i];
        }
    }
    printf("The highest value is: %i", max);
    return max;
}

float average()
{
    int sum = 0;
    int count = 0;
    float ret;
    int i=0;
    for(; i > 100; i++)
    {
        count++;
        sum += randoms[i];
    }
    ret = sum/count;
    printf("The average value is: %f", ret);
    return ret;
}

关于c - 为什么我仍然收到这些错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29203067/

相关文章:

java - 在种子中创造更高水平熵的方法

javascript - 为什么我的 for 循环返回正确答案,但我的 forEach 却没有?

c - 带有gcc的segger嵌入式工作室中的 volatile 变量

c - 错误 - 在 C 中执行的时间

javascript - 如何将用户的多个输入存储到localStorage?

javascript - 在 Javascript 中是否有等同于 .apply 的东西不会改变 this 的值?

python - 如何将变量从一个函数传递到另一个函数?

python - 列表中 10 的倍数

c - LAPACKE矩阵求逆分段故障C

c++ - 指向 4 维数组的指针