Задача с массивами

Тема в разделе "C/C++/C#", создана пользователем Rivass, 5 ноя 2010.

Статус темы:
Закрыта.
  1. Rivass

    Rivass Гость

    Вводится массив целых чисел A размером N, а также целое число K. Вывести зна-чение и индекс элемента массива, наиболее близкого к K.
    Как вводить массив, как находить минимум и максимум я разобрался, но тут задачка посложнее.... Пытался сравнивать каждый элемент с К и выбрать тот который ближе, но не получается. Помогите пожалуйста доработать:
    Код (C++):
    #include<stdio.h>
    int a[50],n,i,k,b,p,z;
    void main(){
    scanf_s ("%d%d",&n,&k); //ввод размера массива n и число k, к которому будем искать ближний
    for(i=0;i<n;i++)
    scanf_s ("%d",&a[i]);//ввод массива будет производиться пользователем
    for(i=0;i<n;i++)
    {
    //тут я пытался написать код вычисления наиближайшего, но кателок не варит...
    }
    i=0;
    while (a[i]!=b) // тут я нахожу индекс элемента, который будет ближе всех к К
    {
    i++;
    }
    printf_s ("%d index=%d\n",b,i);// ну а это вывод...
    }
     
  2. Rivass

    Rivass Гость

    Немного непонятно, тут в вашей программе всё делается рандомно и автоматически, а по заданию нужно чтобы пользователь вводил размер массива, элементы массива, и число К. В массиве программа должна найти элемент, ближайший к К.
    Может вы написали этот алгоритм чтобы я понял как искать ближайшее к данному число, но мне не очень понятно как)
    Но все равно спасибо что написали)
     
  3. flashkpi

    flashkpi Гость

    По моему небольшая проблема переделать ввод.....
    Код (Text):
     for(int i = 0; i < n; i++)
    scanf("%d",a[i]);
     
  4. Rivass

    Rivass Гость

    Со вводом все правильно) Теперь я понял код который написал мне rrrFer и всё получилось)
    Код (C++):
    #include<stdio.h>
    #include<stdlib.h>
    int a[50],n,k,i,j;
    void main(){
    scanf_s ("%d%d",&n,&k);
    for(i=0;i<n;i++)
    scanf_s ("%d",&a[i]);
    for(j=0,i=1;i<n;i++)
    {
    if(abs(k-a[j])>abs(k-a[i])) //вот код который найдет ближайший к К элемент.
    j=i;
    }
    i=0;
    while (a[i]!=a[j]) //этот код найдет индекс (порядковый номер в массиве от 0 до n)
    {
    i++;
    }
    printf_s ("%d index=%d\n",a[j],i);
    }
     
  5. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Rivass, вам было бы понятнее если бы он описал все это через динамику?!, аля:
    Код (C++):
    int *Arr;
    int Size;
    printf("Input Array-Size :");
    scanf("%i",&Size);
    Arr = (int*)malloc(sizeof(int)*Size);
    Не правда ли, очень затрудняет понимание?
     
  6. Rivass

    Rivass Гость

    DarkKnight125
    Мне было непонятно из-за того, что рандомные числа рассматривались, а потом немного позже разобрался, аля так, как написали вы, не очень понятно. Не нужно сразу так возмущаться) Я разобрался как видите)
    Всем большое спасибо за помощь)
     
  7. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Да не, ты не понял :)
    Я и не думал возмущатся - просто я к тому, что так как написал rrrFer наиболее понятно для начало и показательно....
    А все остальные излишки, только засорят вам мозги....
    Я об этом, прошу прощения, что выразился не корректно, что дало вам понять, что я возмутился ;-)
    Я просто как раз за то, что бы конечный читатель (автор), смог в коде разобраться, вот и показал вам, что если бы rrrFer, писал как будто для себя, код бы был намного менее читабелен ;-)


    Добавлено:
    Да я понил rFer ;-) как раз об этом и писал автору :))
    З.Ы. В любом случае лучше рандома нет ничего... Пальцы - это конечно хорошо, н прослеживается постоянство и однотипность ;-)
    Вообщем пальцы за кол*цензура*ием процессорского ядра - точно не угонятся ;-)
     
Загрузка...
Похожие Темы - Задача массивами
  1. Ruslan737
    Ответов:
    10
    Просмотров:
    2.463
  2. Янчик
    Ответов:
    0
    Просмотров:
    490
  3. TrishaRay
    Ответов:
    1
    Просмотров:
    783
  4. elzim
    Ответов:
    0
    Просмотров:
    932
  5. ShaoKahn
    Ответов:
    0
    Просмотров:
    1.128
Статус темы:
Закрыта.

Поделиться этой страницей