检查数字在数组中出现多少次

时间:2019-03-05 19:35:42

标签: c arrays

我在这个问题上停留了一段时间。我是C语言编程的新手,我想弄清楚如何查看用户是否输入了1到20之间的数字,并检查用户输入的数字是否出现在1到20之间的随机数数组中,然后向用户显示他们输入的数字显示为“次数”。

#include <stdio.h>
#include <stdlib.h>
#define N 30
int main(void)
{
    int nums[N];
    int numAppear, i, count = 0;
    int n;

    for (i = 0; i < N; i++) {
      nums[i] = rand()%20 + 1;
    }

    for (i = 0; i < N; i++) {
        printf("Enter a number between 1 and 20 to be found (<=0 for exit): ");
        scanf("%d", &n);

        if (n <= 0) {
            printf("End\n");
            break;
        }
        else if (nums[j] == n) {
            count++;
            printf("%d appears %d times \n" , n, count);
        }
        else {
            printf("%d appears %d times \n" , n, count);
        }
    }
    return 0;
}

1 个答案:

答案 0 :(得分:1)

您要在循环中的每次迭代中向用户询问一个数字,并在每次迭代中打印计数。另外,您应该索引nums[i],而不是nums[j]

将输入移动到循环之前,将输出移动到循环之后。

printf("Enter a number between 1 and 20 to be found (<=0 for exit): ");
scanf("%d", &n);

if (n <= 0) {
    printf("End\n");
    return 1;
}
for (i = 0; i < N; i++) {
    if (nums[i] == n) {
        count++;
    }
}
printf("%d appears %d times \n" , n, count);