Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2012, 23:15   #1
blain
Пользователь
 
Регистрация: 26.01.2012
Сообщений: 19
Вопрос работа с массивом

нужно написать программу для определения, есть ли в массиве А(10) заданное число Х и если нет, то найти ближайшее к нему..
программу написал, в теории должна работать, но нет, она не находит ни ближайшего к числу.. и не находит элемента массива, который равен числу и на экран выводит только первый элемент, подскажите в чём мой провал.....

листинг:

#include<stdio.h>
#include<conio.h>
#include <math.h>
int main(void)
{
int a[10], i, x, s=0, j=0, k,p;
printf("VVedi massiv\n");
for (i=0; i<10; i++)
scanf("%d\n", &a);
printf("VVedi X\n");
scanf("%d\n", &x);
for (i=0; i<10; i++)
{if (a==x) s++;
printf ("%d", s);}
if (s!=0) printf("est' 4islo = x = %d", x);
else
{ for (i=0; i<10; i++)
{ k=a[j]-x;
p=a-x;
if (k>p) j=i;
printf("Blizaishee 4islo = %d\n", a[j]);}
}
getch();
return 0;
}
blain вне форума Ответить с цитированием
Старый 26.01.2012, 23:45   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

если не особо не вдоваться в подробности
То вот
Цитата:
Код:
scanf("%d\n", &a);
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 26.01.2012, 23:49   #3
blain
Пользователь
 
Регистрация: 26.01.2012
Сообщений: 19
По умолчанию

#include<stdio.h>
#include<conio.h>
#include <math.h>
int main(void)
{
int a[10], i, x, s=0, j=0, k,p;
printf("VVedi massiv\n");
for (i=0; i<10; i++)
scanf("%d\n", &a[i]);
printf("VVedi X\n");
scanf("%d\n", &x);
for (i=0; i<10; i++)
{if (a[i]==x) s++;
printf ("%d", s);}
if (s!=0) printf("est' 4islo = x = %d", x);
else
{ for (i=0; i<10; i++)
{ k=a[j]-x;
p=a[i]-x;
if (k>p) j=i;
printf("Blizaishee 4islo = %d\n", a[j]);}
}
getch();
return 0;
}



вот. но прога все равно работает не так...(((
blain вне форума Ответить с цитированием
Старый 26.01.2012, 23:51   #4
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

В теории работать тоже не должна.
Код:
int a[10], i, x, s=0, j=0, k,p;
printf("VVedi massiv\n");
for (i=0; i<10; i++)
scanf("%d\n", &a);    //scanf("%d", &a[i]);

printf("VVedi X\n");    
scanf("%d\n", &x);  //scanf("%d", &x);
for (i=0; i<10; i++)
{if (a==x) //(a[i]==x) 
s++;
printf ("%d", s);}
if (s!=0) printf("est' 4islo = x = %d", x);
else
{ for (i=0; i<10; i++)
{ k=a[j]-x;  
p=a-x;
if (k>p) j=i;
printf("Blizaishee 4islo = %d\n", a[j]);}
}
getch();
return 0;
}
Оформляйте программу тегом [/CODE], для чего выделите программу и нажмите знечок # на панели сообщения
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 27.01.2012 в 00:23.
Sweta вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивом. anon321 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 24.05.2011 13:20
Работа с массивом MikeL 124 rus Помощь студентам 14 09.05.2011 19:05
Работа с массивом Aleks2215 Microsoft Office Excel 10 04.11.2010 23:38
работа с массивом s2dentishe Помощь студентам 2 12.12.2009 22:35
Работа с массивом: n на n ! Angst Помощь студентам 1 24.01.2008 22:14