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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2009, 17:39   #1
hen
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 96
По умолчанию Си++. Вставить в массив элемент в нужную строку

Дан одномерный массив. Вставьте в него элемент L в позицию K.

Код:
#include <iostream.h>
#include <conio.h>
void main()
{
int a[10];
int k,l,i,n;
clrscr();
for (i=0;i<10;i++)
{
 cout << "Vvedite element a[" << i << "]: ";
 cin >> a[i];
}
cout << endl << "Vvedite element: ";
cin >> l;
cout << endl;
cout << "Vvedite poziciu: ";
cin >> k;
for (i=0;i>k;i++)
  a[i-1]=a[i];
a[k]=l;
cout << endl << "Konechnji massiv: ";
for (i=0;i<10;i++) cout << a[i] << ' ';
getch();
}
Проблема заключается в том что при вводе вот такого массива
Код:
1  2  3  4  5  6  7  8  9  10
элемент 54 позиция 2
1) он втсавляется в 3 позицию ( на место элемента a[2]), а как бы можно сделать чтоб он вставлялся именно в позицию 2 ( т.е a[1]), вроде бы массив с нулевого элемента начинается
2) результат получается немного не такой как мне нужно
Код:
1  2  54  4  5  6  7  8  9  10
а необходимо чтобы получилось
Код:
1  54  2  3  4  5  6  7  8  9
Пожалуйста подскажите что здесь не так
hen вне форума Ответить с цитированием
Старый 08.06.2009, 17:46   #2
hen
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 96
По умолчанию

по первому вопросу я разобрался
Код:
a[k-1]=l
а вот со вторым чтото никак
hen вне форума Ответить с цитированием
Старый 08.06.2009, 17:49   #3
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Код:
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int a[10];
int k,l,i,n;

for (i=0;i<10;i++)
{
 cout << "Vvedite element a[" << i << "]: ";
 cin >> a[i];
}
cout << endl << "Vvedite element: ";
cin >> l;
cout << endl;
cout << "Vvedite poziciu: ";
cin >> k;
for (i=10;i>=k;i--)
  a[i]=a[i-1];
a[k-1]=l;
cout << endl << "Konechnji massiv: ";
for (i=0;i<10;i++) cout << a[i] << ' ';
getch();
return 0;
}
?
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 08.06.2009, 20:19   #4
hen
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 96
По умолчанию

Цитата:
Сообщение от __STDC__ Посмотреть сообщение
Код:
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int a[10];
int k,l,i,n;

for (i=0;i<10;i++)
{
 cout << "Vvedite element a[" << i << "]: ";
 cin >> a[i];
}
cout << endl << "Vvedite element: ";
cin >> l;
cout << endl;
cout << "Vvedite poziciu: ";
cin >> k;
for (i=10;i>=k;i--)
  a[i]=a[i-1];
a[k-1]=l;
cout << endl << "Konechnji massiv: ";
for (i=0;i<10;i++) cout << a[i] << ' ';
getch();
return 0;
}
?
Этот вариант у меня был с самого начала, почему то при вводе какого-либо числа, к примеру, 45, 54, 81 в массив всегда вставляется число 10...
поэтому я и стал пытаться переделать...
hen вне форума Ответить с цитированием
Старый 08.06.2009, 20:39   #5
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Цитата:
Сообщение от hen Посмотреть сообщение
Этот вариант у меня был с самого начала, почему то при вводе какого-либо числа, к примеру, 45, 54, 81 в массив всегда вставляется число 10...
поэтому я и стал пытаться переделать...
там еще в конце <= 10 должно быть.. в последнем цикле
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 08.06.2009, 20:59   #6
hen
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 96
По умолчанию

Цитата:
Сообщение от __STDC__ Посмотреть сообщение
там еще в конце <= 10 должно быть.. в последнем цикле
число 54 позиция 2

если сделать так то результат получается
Код:
1  10  2  3  4  5  6  7  8  9  10
а мне нужно чтобы получалось
Код:
1  54  2  3  4  5  6  7  8  9
если сделать вот так
Код:
for (i=0;i>=k;i++)
  a[i]=a[i-1];
a[k-1]=l;
то получается, что число в массиве выводит то которое нужно
Код:
1  54  3  4  5  6  7  8  9  10

Последний раз редактировалось hen; 08.06.2009 в 21:04.
hen вне форума Ответить с цитированием
Старый 08.06.2009, 21:14   #7
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Цитата:
Сообщение от hen Посмотреть сообщение
число 54 позиция 2

а мне нужно чтобы получалось
Код:
1  54  2  3  4  5  6  7  8  9
я не понимаю вас тогда... тот код что я выше написал... результаты его работы -
347.jpg
что-то не так?
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 08.06.2009, 21:24   #8
hen
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 96
По умолчанию

а вы делаете в билдере с++??

я пробовал в билдере с++ все работает, но в турбо с++ не работает почему то, а мне вот и нужно чтоб в турбо с++ работало


вот так в турбо с++ получается
hen вне форума Ответить с цитированием
Старый 08.06.2009, 21:46   #9
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

не.. у меня Dev-Cpp...
попробуйте так..
Код:
for (i=9;i>=k;i--)
  a[i]=a[i-1];
  
a[k-1]=l;
cout << endl << "Konechnji massiv: ";
for (i=0;i<10;i++) cout << a[i] << ' ';
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 08.06.2009, 22:13   #10
hen
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 96
По умолчанию

Цитата:
Сообщение от __STDC__ Посмотреть сообщение
не.. у меня Dev-Cpp...
попробуйте так..
Код:
for (i=9;i>=k;i--)
  a[i]=a[i-1];
  
a[k-1]=l;
cout << endl << "Konechnji massiv: ";
for (i=0;i<10;i++) cout << a[i] << ' ';
спс большое, теперь всё отлично работает

а как вы думаете почему возникли такие проблемы что в билдере все работает а в турбо с++ нет??
hen вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Вставить в массив элемент со сдвигом всех остальных элементов Yulya Помощь студентам 1 31.03.2009 10:53
Вставить запись в нужную строку и колонку Inbox БД в Delphi 1 19.02.2009 19:50
Вставить первую строку после строки, в которой находится первый встреченный максимальный элемент. JiLiYa Паскаль, Turbo Pascal, PascalABC.NET 4 03.12.2008 12:13
Как добавить нужную строку в memo Volkogriz Общие вопросы Delphi 5 02.12.2008 22:38
Найти максимальный элемент матрицы и вставить правее него столбец из нулей и ниже него строку из нулей. Romer9999 Паскаль, Turbo Pascal, PascalABC.NET 3 28.11.2008 11:28