计算c数组中特定范围的频率随机数

时间:2019-09-02 20:12:16

标签: c

我正在尝试计算特定区域中数字的频率 0 <=数字<16,87 <=数字<100。

我试图在循环内使用if块并尝试增加 main(){int sum = 0;}

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
    int a[5]={0};
    int i,n,sum=0;
    srand(time(NULL));

    for(i=1;i<=50;i++)
    {
        n=1+rand() % 100;
        a[n/20]++;

    }
    for(i=0;i<5;i++)
    {
        if(0<=a[i]<=16){
            sum++;
        }


    } printf("%d",sum);
}

我应该在输出中得到不同的数字,但输出始终是相同的数字“ 5”

1 个答案:

答案 0 :(得分:3)

if(0<=a[i]<=16){

不是正确的表达。由于(0 <= a [I])将始终为true(1)或false(0),因此始终为true。这两个值均小于16。您想要这样的东西:

if ((a[i] >= 0) && (a[i] <= 16))

顺便说一句,请务必注意编译器警告。在这种情况下,它可以准确地告诉我问题出在哪里。