Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программирование на языке C

НАТАЛЬЯ КОСОЛАПОВА Ученик (152), открыт 1 неделю назад
Как исправить то, что -1 выдает каждый раз, а не в том случае, если key нет в массиве?

#include<stdio.h>
int main()
{
int a[10];
int f=0,key;
scanf("%d",&key);
for(int i=0;i<10;i++)
{
scanf("%d",&a[i]);
}

for(int i=0;i<10;i++)
{
f++;
if(a[i]==key)
{
printf("%d\n%d\n",i,f);
}
if(key!=a[i])
printf("-1\n");
}
}
3 ответа
Генномодифицированный гриб Мастер (1684) 1 неделю назад
так вроде все работает
ввод: 5 1 2 3 4 5 6 7 8 9 10
вывод: -1 -1 -1 -1 4 5 -1 -1 -1 -1 -1
4 это i, 5 это f
Николай Веселуха Высший разум (362332) 1 неделю назад
 #include   
#define LENGTH ((size_t)10)
int main(void) {
int sequence[LENGTH];
size_t index, position = 0;
int key;
scanf("%d", &key);
for (index = 0; index < LENGTH; ++index) {
scanf("%d", &sequence[index]);
}
for (index = 0; index < LENGTH; ++index) {
++position;
if (sequence[index] == key) {
printf("index: %zu\nposition: %zu\n", index, position);
break;
}
}
if (!position) {
puts("-1");
}
return 0;
}
Николай ВеселухаВысший разум (362332) 1 неделю назад
 #include    
#define LENGTH ((size_t)10)
int main(void) {
int sequence[LENGTH];
size_t index, position = 0, count = 0;
int key;
scanf("%d", &key);
for (index = 0; index < LENGTH; ++index) {
scanf("%d", &sequence[index]);
}
for (index = 0; index < LENGTH; ++index) {
++position;
if (sequence[index] == key) {
++count;
printf("%zu %zu\n", index, position);
}
}
if (!count) {
puts("-1");
}
return 0;
}
Вот так правильно!
Николай ВеселухаВысший разум (362332) 1 неделю назад
А можно и так...
 #include    
#define LENGTH ((size_t)10)
int main(void) {
int sequence[LENGTH];
size_t index, count = 0;
int key;
scanf("%d", &key);
for (index = 0; index < LENGTH; ++index) {
scanf("%d", &sequence[index]);
}
for (index = 0; index < LENGTH; ++index) {
if (sequence[index] == key) {
++count;
printf("%zu %zu\n", index, index + 1);
}
}
if (!count) {
puts("-1");
}
return 0;
}
Несмачный Дмитрий Профи (839) 1 неделю назад
Ну так у вас же каждый раз в цикла проверка: если ДАННЫЙ элемент массива не равен key - вывести -1.
Что бы это сообщение выводилось только, если key не найден, вам нужно завести флажок, например int, обнулить его перед циклом, и при нахождении ключа, там где выводите ключ на экран, установить в 1. А ПОСЛЕ цикла проверить, если он остался равным нулю, значит вы ни одного совпадения не нашли, и тогда уже выводите -1, а если он не равен 0, значит где то в цикле совпадение было и -1 выводить не нужно...
Похожие вопросы