Почему следующий оператор IF не оценивает значение true, даже если пол [i] имеет значение M char?Сравнение символов для оператора if не оценивается как истинный
for (i=0;i<3;i++)
if (sex[i] == 'M' || sex[i] == 'm')
Что я пытаюсь сделать, это создать массив символов, который содержит несколько значений для строк или символов. В этом случае, это характер, и она работает вне, если функции, если я напечатать секс [0] я получаю М.
О, и я знаю, что переменная должна быть объявлена как этот
char sex[size][sizeofstring]
весь код:
#include <stdio.h>
int main() {
char name[10][256], sex[10][256];
int i;
for (i=0;i<3;i++) {
printf ("Insert the name of the person %d and her gender, M for male F for female\n", i+1);
scanf("%s", name[i]);
scanf(" %c", sex[i]);
}
for (i=0;i<3;i++)
if (*sex[i] == 'M' || *sex[i] == 'm')
printf ("\n%s", name[i]);
for (i=0;i<3;i++)
if (sex[i] == 'F' || sex[i] == 'f')
printf ("\n%s", name[i]);
}
Подождите, почему вы выделения двумерный массив? – yellowantphil
Потому что я googled о том, как создать массив для char, и это то, что мне сказали. Я предполагаю, что второе измерение будет содержать количество символов, которое имеет строка, а первое - количество строк, которые вы хотите получить в массиве. –
Итак, попробуйте 'if (* sex [i] == 'M' || * sex [i] == 'm')' – BLUEPIXY