为什么我仍然收到这些错误?
Why am I still getting these errors?
所以这是一个实验室,我们应该在其中创建一个随机数生成器,以在一个 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;
}
所以这是一个实验室,我们应该在其中创建一个随机数生成器,以在一个 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;
}