Как я могу создать оператор if, который является истинным всякий раз, когда вводится элемент из массива? (C)

#c

#c

Вопрос:

Вот код.

Прямо сейчас я не использую массив, но я не хочу помещать все эти операторы if.

Это всего лишь пример моего фактического кода.

 int array[6] = {2,3,5,7,9,11};
int num;
printf("Enter a number: ");
scanf("%d", amp;num);

if(num == 2 || num == 3 || num == 5 || num == 7 || num == 9 || num == 11 ){
    printf("Truen");
}
else{
    printf("Falsen");
}
  

Комментарии:

1. Используйте for цикл для итерации элементов массива. int ix; for (ix = 0; ix < sizeof(array)/sizeof(array[0]); ix ) { ...}

2. Если значения массива находятся в диапазоне [0 …255], используйте unsigned char[] и memchr() .

Ответ №1:

Попробуйте это

добавьте эту функцию в свой код и вызывайте ее, когда вам нужно проверить

     int valueinarray(float val, float arr[])
{
    int i;
    for(i = 0; i < sizeof(arr) / sizeof(arr[0]); i  )
    {
        if(arr[i] == val)
            return 1;
    }
    return 0;
}
  

Пример

 int valueinarray(float val, float arr[]);
  

Комментарии:

1. вы можете изменить тип данных, какой захотите, например: float на int или else .

Ответ №2:

 #include <stdio.h>

int main()
{

int arry[] = {1,2,3,4,5,6};

for(int i = 0; i < sizeof(arry);   i){
    
    printf("nNumber %d printed!", i);
    
    
    
    if(i == 2) // Replace '2' with user input.
    {
        printf("nFound 2");
        break; // Exit loop because we found what we were looking for
    }
    else {
        // do something
    }
}
  

}

Комментарии:

1. sizeof(arry) должно быть sizeof(arry)/sizeof(arry[0])

2. if(i == 2) должно быть if(arry[i] == num) , где num находится значение пользовательского ввода, как показано в коде операции.