【发布时间】:2014-01-23 23:39:12
【问题描述】:
所以我正在做一些作业,其中我必须创建一个由 0 到 99 之间的 500 个随机整数组成的全局数组。然后,我必须计算有多少大于 75,有多少小于 50。
这是我的代码:
#include <stdlib.h>
#include <stdio.h>
static int ARRAY[500];
static char str[1];
void main() {
int i = 0;
for (i = 0; i < 500; i++) {
int r = rand() % 99;
ARRAY[i] = r;
}
int gt75 = count75();
int lt50 = count50();
printf("%d\n", str, gt75);
printf("%d\n", str, lt50);
}
int count75() {
int i = 0, counter = 0;
for (i = 0; i < 500; i++) {
int n = ARRAY[i];
if (n > 75) {
counter += 1;
}
}
return counter;
}
int count50() {
int i = 0, counter = 0;
for (i = 0; i < 500; i ++) {
int n = ARRAY[i];
if (n < 50) {
counter += 1;
}
}
return counter;
}
但是,在编译并运行我的程序后,我得到以下输出:
4225008
4225008
这是不对的,因为列表首先应该只有 500 个元素。我做错了什么?
【问题讨论】:
-
你必须使用
srand()来生成“体面的”随机数cplusplus.com/reference/cstdlib/srand -
printf("%d\n", str, gt75);str在这里做什么? -
@OliCharlesworth 我不确定,我查看了如何打印整数,这就是使用的一些方法:stackoverflow.com/questions/11732402/…
标签: c