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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.07.2015, 10:35   #1
25-й кадр
Человек
Форумчанин
 
Регистрация: 04.04.2011
Сообщений: 178
По умолчанию пробный тест [C++]

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

Вот моя программа:
Код:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>

using namespace std;

int main()
{
	cout << "Hello!" << endl;

	int x, k = 1, arr[10];

	cout << "\nYour mass: \n ";

	if (k <= 10) {

		for (int i = 0; i < 10; i++) {

			x = arr[k];
			arr[k] = arr[11 - k];
			arr[11 - k] = 2 * x;

			k = k + 1;
			cout << "k=" << k << "\n ";
		}
	}

	else
	{
		cout << "bye" << endl;
	};

	system("pause");

	return 0;
}
Не могу понять, в чём косяк у меня.
Изображения
Тип файла: jpg 111.jpg (30.0 Кб, 134 просмотров)
Это вам не это
25-й кадр вне форума Ответить с цитированием
Старый 16.07.2015, 10:52   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

покрутил цикл в уме.
на мой взгляд, правильный ответ 2)

рассуждал так:
элементы дважды транспонируются (порядок восстановится) путём обмена элементов, при этом один из пары обмениваемых элементов умножается на 2.

Цитата:
Не могу понять, в чём косяк у меня.
шутите?!

во-первых, в задании элементы массива от 1 до 10 (у Вас от 0 )
во-вторых, в задании элементы заполнены числами от 10 до 1. Где у Вас в коде начальное заполнение?
в-третьих, где Вы в алгоритме увидели внутренний цикл по i (for i нужно вообще выкинуть!)?!!
в-четвёртых, где вывод полученного массива?!

Последний раз редактировалось Serge_Bliznykov; 16.07.2015 в 10:56.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.07.2015, 11:00   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
	if (k <= 10) {

		for (int i = 0; i < 10; i++) {

			x = arr[i];
			arr[i] = arr[10 - i - 1];
			arr[10 - i - 1] = 2 * x;
			
		}
		for (int i = 0; i < 10; i++) cout << arr[i] << "\t";
	}

	else
	{
		cout << "bye" << endl;
	};
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.07.2015, 11:17   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Виталий, и что, работает?!

Не ожидал от Вас такого "подвоха"...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.07.2015, 11:22   #5
25-й кадр
Человек
Форумчанин
 
Регистрация: 04.04.2011
Сообщений: 178
По умолчанию

Да, массивы моя больная тема... Когда-то с ними не особо разобрался, теперь мучаюсь при встрече с ними. Отвлёкся...
Разве, for не даёт как-раз таки вывод цикла на экран? Я тут подшаманил немного.
Код:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>

using namespace std;

int main()
{
	cout << "Hello!" << endl;

	int x, k = 1, arr[11];

	cout << "\nYour mass: \n ";

	if (k <= 10) {

		for (int i = 1; i < 11; i++) {

			x = arr[k];
			arr[k] = arr[11 - k];
			arr[11 - k] = 2 * x;

			k = k + 1;
			cout << "k=" << k-1 << "\n ";
		}
	}

	else
	{
		cout << "bye" << endl;
	};

	system("pause");

	return 0;
}
Теперь, вроде, с первого элемента же?
Изображения
Тип файла: jpg Wv1dLGUGUa0.jpg (21.4 Кб, 40 просмотров)
Это вам не это
25-й кадр вне форума Ответить с цитированием
Старый 16.07.2015, 11:37   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я бы так написал:

Код:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>

using namespace std;

int main()
{
	cout << "Hello!" << endl;

	int x, k, A[11];

        // заполняем массив исходными числами и сразу их выводим на экран
	cout << "\nYour mass: ";
	for(k = 1; k<11; k++) {
		A[k] = 11-k;
		cout << A[k]  << "\t ";
	}
	cout << "\n";

	// вот, собственно алгоритм обработки массива. Прямо по блок-схеме:
	for (k = 1; k<=10; k++) {
		x = A[k];
		A[k] = A[11 - k];
		A[11 - k] = 2 * x;
	}


        // выведем массив после обработки:
	cout << "\nYour mass after: ";
	for(k = 1; k<11; k++) {
		cout << A[k]  << "\t ";
	}
	cout << "\n";


	system("pause");

	return 0;
}

p.s. кстати, хреновый из меня выполняльщик кода в уме. Предложенные ответы сбили с пути истинного. Ответ получается совсем другой!!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.07.2015, 11:46   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Не ожидал от Вас такого "подвоха"...
Какого именно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.07.2015, 11:54   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Какого именно?
предложить заведомо неработающий код

Вы мой пост #2 читали? после слов "шутите"?...

если вкратце, то массив изначально не заполнен. И нумерация от единицы...
остальное уже не так важно...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.07.2015, 12:04   #9
25-й кадр
Человек
Форумчанин
 
Регистрация: 04.04.2011
Сообщений: 178
По умолчанию

Serge_Bliznykov, да, я заметил, но с таким решением, массив выводится со значениями: "40, 36, 32, 28, 24, 5, 4, 3, 2, 1". А первых 5ти чисел в ответе нет.
Это вам не это
25-й кадр вне форума Ответить с цитированием
Старый 16.07.2015, 12:32   #10
25-й кадр
Человек
Форумчанин
 
Регистрация: 04.04.2011
Сообщений: 178
По умолчанию

Вручную считаю, получается ответ 2). Может, всё же, где-то в программе ошибка, раз так показывает...
Это вам не это
25-й кадр вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запрограммировать в делфи 7 тест Лири и тест Торстона через базу данных (курсовая на 1-м курсе) mekil Помощь студентам 10 10.06.2014 17:56
Тест на VB mallchel Помощь студентам 6 14.05.2013 16:51
Тест треч Помощь студентам 8 17.03.2011 23:27
Тест ValdisZ Паскаль, Turbo Pascal, PascalABC.NET 6 17.01.2011 17:35
Пробный срок работы БД VistaSV30 Microsoft Office Access 3 04.03.2010 22:44