检查一个数字在数组中出现的次数
Posted
技术标签:
【中文标题】检查一个数字在数组中出现的次数【英文标题】:Checking to see how many times a number appears in an array 【发布时间】:2019-03-05 19:35:42 【问题描述】:我已经被这个问题困扰了一段时间。我是 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;
【问题讨论】:
您应该将输入置于循环之外。j
到底是什么?
【参考方案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);
【讨论】:
以上是关于检查一个数字在数组中出现的次数的主要内容,如果未能解决你的问题,请参考以下文章