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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2011, 19:47   #1
BomaN1
Пользователь
 
Регистрация: 13.09.2011
Сообщений: 21
Восклицание Задание по С++

Дан массив y1, ... , y20.
Сформировать массив Z1, ... , Z20, элементы которого соответствуют элементам yi , сдвинутым на одну позицию влево, т.е.
Z1 = y2 ; Z2 = y3 ; ... ; Z19 = y20 ; Z20 = y1. Умножить все элементы Zi на 2.


вот код написал.если есть ошибки и недочеты до скажите....нужно чтоб также был форматированный вывод на экран

#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
float y[5],z[5];
int i=0,n;

cout<<" Vvedite kol-vo elementov N=";
cin>>n;
cout<<" Vvedite kol-vo elementov massivov Y,Z ";
for(i<n;i++)
cin>>y[i];
for(i<n;i++)
cin>>z[i];
for(i<n;i++)
cout<<"y["<<i<<"]="<<y[i]<<endl; //Вывод y на экран
for(i<n;i++)
cout<<"z["<<i<<"]="<<z[i]<<endl; // Вывод z на экран
for(i<n;i++)
for (int i=0; i<n-1; i++); //i--
{
z[i]=y[i+1];
z[0]=y[n];
}
for (int i=0; i<n; i++);
{
z[i]=z[i]*2;
cout << "Element s nomerom" << i << " = " << z[i] << endl;
//cout<<"z["<<i<<"]="<<z[i]<<endl; вывод результата
}
_getch();



}
BomaN1 вне форума Ответить с цитированием
Старый 13.09.2011, 20:00   #2
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Цитата:
Сообщение от BomaN1 Посмотреть сообщение
Дан массив y1, ... , y20.
Сформировать массив Z1, ... , Z20, элементы которого соответствуют элементам yi , сдвинутым на одну позицию влево, т.е.
Z1 = y2 ; Z2 = y3 ; ... ; Z19 = y20 ; Z20 = y1. Умножить все элементы Zi на 2.


вот код написал.если есть ошибки и недочеты до скажите....нужно чтоб также был форматированный вывод на экран

#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
float y[5],z[5];
int i=0,n;

cout<<" Vvedite kol-vo elementov N=";
cin>>n;
cout<<" Vvedite kol-vo elementov massivov Y,Z ";
for(i<n;i++)
cin>>y[i];
for(i<n;i++)
cin>>z[i];
for(i<n;i++)
cout<<"y["<<i<<"]="<<y[i]<<endl; //Вывод y на экран
for(i<n;i++)
cout<<"z["<<i<<"]="<<z[i]<<endl; // Вывод z на экран
for(i<n;i++)
for (int i=0; i<n-1; i++); //i--
{
z[i]=y[i+1];
z[0]=y[n];
}
for (int i=0; i<n; i++);
{
z[i]=z[i]*2;
cout << "Element s nomerom" << i << " = " << z[i] << endl;
//cout<<"z["<<i<<"]="<<z[i]<<endl; вывод результата
}
_getch();



}
Первый же вопрос, который у меня возник, зачем вы просите ввести количество элементов массива, если массив у вас имеет фиксированный размер, равный 5?! Я дкмаю, нужно сразу же просить ввести 5 элементов исходного массива.
Со мной можно встретиться на www.clipper.borda.ru
Сыроежка вне форума Ответить с цитированием
Старый 13.09.2011, 20:05   #3
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Код:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
	const int N = 20;
	int y[N];

	srand(time(0));
	for (int i = 0; i < N; ++i)
		y[i] = rand()%101-50;

	cout << "Array Y:" << endl;
	for (int i = 0; i < N; ++i)
		cout << y[i] << '\t';

	int z[N];
	int shift = 1;
	for (int i = 0, j = i + shift; i < N; ++i, ++j)
	{
		if (j >= N)
			j = 0;
		z[i] = y[j];
	}

	cout << "Array Z:" << endl;
	for (int i = 0; i < N; ++i)
		cout << z[i] << '\t';

	cin.get();
}
Умножить Z на два, надеюсь, сами сможете. Удачи!
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 13.09.2011, 20:06   #4
BomaN1
Пользователь
 
Регистрация: 13.09.2011
Сообщений: 21
По умолчанию cори

ошибся там n в скобках

я думал мож задать как #define n 20
BomaN1 вне форума Ответить с цитированием
Старый 13.09.2011, 20:07   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

И массив z тоже не имеет смысла вводить пользователю)
Я бы как-то так делал сдвиг:
Код:
z[0]=y[n];
for (i=1; i<n-1; i++)
   z[i]=y[i+1];
upd: ой, не заметил,у вас что-то похожее, но y[0]=z[n] в цикле зачем-то.
Цитата:
я думал мож задать как #define n 20
const int n = 20;
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 13.09.2011 в 20:19.
Alex11223 вне форума Ответить с цитированием
Старый 13.09.2011, 20:09   #6
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Я бы как-то так делал сдвиг:
Код:
z[0]=y[n];
for (i=1; i<n-1; i++)
   z[i]=y[i+1];
А если бы на два элемента сдвигать, а на три? Не самое лучшее решение.
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 13.09.2011, 20:09   #7
BomaN1
Пользователь
 
Регистрация: 13.09.2011
Сообщений: 21
По умолчанию

я в этом коде не понял ничо...
токо начал с++ изучать если не сложно то лучше переписать мой код токо без использования
#include <ctime>
srand(time(0));

просто еще не дошел до страницы описания этих параметров
BomaN1 вне форума Ответить с цитированием
Старый 13.09.2011, 20:11   #8
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Просто инициализация генератора случайных чисел, чтобы не утомлять пользователя вводом.
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 13.09.2011, 20:13   #9
BomaN1
Пользователь
 
Регистрация: 13.09.2011
Сообщений: 21
По умолчанию

а вывод форматированный для уже окончательного Z

cout<<"z["<<i<<"]="<<z[i]<<endl ??
BomaN1 вне форума Ответить с цитированием
Старый 13.09.2011, 20:18   #10
BomaN1
Пользователь
 
Регистрация: 13.09.2011
Сообщений: 21
По умолчанию

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
const int N = 20;
int y[N];

srand(time(0));
for (int i = 0; i < N; ++i)
y[i] = rand()%101-50;

cout << "Array Y:" << endl;
for (int i = 0; i < N; ++i)
cout << y[i] << '\t';

int z[N];
int shift = 1;
for (int i = 0, j = i + shift; i < N; ++i, ++j)
{
if (j >= N)
j = 0;
z[j] = y[i];
}

cout << "Array Z:" << endl;
for (int i = 0; i < N; ++i)
{
z[i]=z[i]*2
cout << z[i] << '\t';

z[i]=z[i]*2;
}

cin.get();
}
BomaN1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задание gilardino11 Общие вопросы C/C++ 5 20.12.2010 23:49
задание по С++ AvengerAndrew Общие вопросы C/C++ 18 26.09.2010 20:24
задание на С blackbanny Помощь студентам 2 15.10.2009 09:39
Задание Олфелия Помощь студентам 6 08.10.2009 16:59