Сравнение целого числа с элементом целочисленного массива

Я новичок в программировании, я искал, но ни один из вопросов не был точным ответом на мой вопрос или языком не было. Я программирую что-то еще, но я просто хотел упростить для себя лучше понять. Итак, мой вопрос: как я могу видеть, когда я ввожу число, которое находится в списке?

#include <stdio.h>
int main()

{
int c[ ] = {0, 1, 2};
int x;

scanf("%d", &x);

if( *c == x )
 printf("Done");
else 
 printf("Fail");

 return 0;

} 
</stdio.h>
5 ответов

Ниже приведен пример (не такой аккуратный).

В C вы ссылаетесь на каждый элемент массива, используя имя массива, за которым следуют квадратные скобки и целочисленное значение (которое может быть константой, переменной, вызовом функции или чем-либо еще, обеспечивающим целое число).

Используя цикл for и используя переменную цикла для ссылки на массив, вы проверяете элемент 0, за которым следует элемент 1 и т.д.

#include <stdio.h>
int main()
{
 int c[] = {0, 1, 2};
 int x;

 scanf("%d", &x);

 int i = 0;
 for(i=0;i<3;i++) {
 if(c[i] == x )
 printf("Done");
 else
 printf("Fail");
 }
 return 0;
}
</stdio.h>

В фактическом коде вы не будете использовать "i <3" в цикле for только потому, что это означает, что цикл не будет масштабироваться с размером массива.

Как заметил Пол Руб в комментариях, это отобразило бы "FailFailDone", если вы ввели 2. В случае, когда вы только хотели показать значение, когда это удалось, вы можете использовать "break" или "return (0)" после первый оператор печати. Пример ниже.

for(i=0;i<3;i++) {
 if(c[i] == x )
 {
 printf("Done");
 return(0);
 }
 }
 printf("Fail");

Дальнейшие изменения сделаны после комментария interjay. Теперь код будет печатать только "Готово", если номер найден, иначе он напечатает "Fail".


Вот решение вашей проблемы:

#include <stdio.h>
int main()
{
int c[] = {0, 1, 2};
int x;

scanf("%d", &x);
int i=0;
while(c[i]!=x && i<3)
{
 i++;
}
if(i==3)
{
 printf("FAIL");
}
else
{
 printf("DONE");
}
return 0;
}
</stdio.h>


Вам нужно будет циклически перебирать элементы в массиве (например, использовать for) и сравнивать каждую запись со значением x.


Проверяйте каждое значение в списке; если вы видите матч, объявляйте победу и возвращайтесь.

Если совпадения не найдено, напечатайте "Fail".

#include <stdio.h>
int main()

{
 int c[ ] = {0, 1, 2};
 int x;
 int i;

 scanf("%d", &x);

 for ( i = 0; i < 3; ++i )
 {
 if ( c[i] == x )
 {
 printf("Done");
 return 0;
 }
 }

 printf("Fail");

 return 0;

} 
</stdio.h>


#include <stdio.h>
int main()

{
int c[ ] = {0, 1, 2};
int x, i;

scanf("%d", &x);

for(i=0;i<3;i++)
 if( c[i] == x )
 {
 printf("Done");
 break;
 } 

if(i==3)
 printf("Fail");

return 0;

} 
</stdio.h>

licensed under cc by-sa 3.0 with attribution.