#c #arrays
#c #массивы
Вопрос:
Я застрял на этой проблеме на некоторое время. Я новичок в программировании на 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", amp;n);
if (n <= 0) {
printf("Endn");
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. Вы должны выводить входные данные за пределы цикла. Что
j
вообще?
Ответ №1:
Вы запрашиваете у пользователя число на каждой итерации цикла и печатаете количество на каждой итерации. Кроме того, вы должны индексировать nums[i]
, а не nums[j]
Переместите ввод перед циклом, а вывод после.
printf("Enter a number between 1 and 20 to be found (<=0 for exit): ");
scanf("%d", amp;n);
if (n <= 0) {
printf("Endn");
return 1;
}
for (i = 0; i < N; i ) {
if (nums[i] == n) {
count ;
}
}
printf("%d appears %d times n" , n, count);