Консультация № 143279
07.09.2008, 17:09
0.00 руб.
0 2 1
Уважаемые эксперты помогите пожалуйста решить задачи!
1. Написать программу, которая выводит сумму значений отрицательных элементов массива, сумму индексов положительных элементов массива и исходный массив. Размерность массива определить с клавиатуры.

2. одномерный динамический массив. Написать программу, которая выводит на экран массив с указанной пользователем позиции.Если позиция больше элементов массива, то вывести сообщение об ошибке.

Я только только начал изучать си и потому прошу Вас писать не очень заумно.

Обсуждение

Неизвестный
07.09.2008, 18:20
общий
это ответ
Здравствуйте, Vitvol!

Две программы в приложении. Скомпил. на MS VS 2005.
Будут вопросы по коду - ЗАДАВАЙТЕ.

Приложение:
//1 - ая программа:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
int mas[100]; //Массив на 100 элементов
int size = 0; //Переменая размерности

cout << "Vvedyte razmernost' massyva: ";

cin >> size;

cout << endl;

cout << " Zapolnit' massyv: \n"
<< " ---------------- \n"
<< " Vruchnuyu - 1 \n"
<< " Avtomatychesky - 2 \n"
<< " : ";

int sw; //Переменная выбора

cin >> sw;

cout << endl;

switch(sw)
{
case 1: for(int i = 0; i < size; i++) //Цикл для ввода эл. вручную
{
cout << " el.of mas[" << i << "]: ";

cin >> mas[i];
}

break;


case 2: for(int i = 0; i < size; i++) //Цикл для автом. заполнения массива
{
mas[i] = rand();
}

break;
}

cout << endl << " Massyv: " << endl << endl; //Цикл для вывода массива на экран

for(int i = 0; i < size; i++)
{
cout << " " << mas[i] << setw(3);
}

cout << endl << endl;

int suma = 0; //Переменная для хранения суммы отриц. эл.
int sindex = 0; //Переменная для хранения суммы индексов пол. эл.

for(int i = 0, iind = 0; i < size; i++, iind++)
{

if(mas[i] < 0) suma += mas[i]; //Если очередной эл. массива меньше 0, то суммируем в переменную suma

if(mas[i] >= 0) sindex += iind; //Если очередной эл. массива не отриц. суммируем индексы в переменну sindex
}

cout << " Suma otrycatel'nyh elementov: " << suma << endl; //Вывод на экран суммы отриц. эл.
cout << " Suma indeksov ne otr. elementov: " << sindex << endl << endl; //Вывод на экран суммы инд. не отриц. эл.

return 0;
}

//Вторая программа:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
int mas[50], size = 0, pos = 0;

cout << "Vvedtyte razmernost' massyva (ne bol'she 50): ";

do
{
cin >> size;

if(size > 50) cout << "Slyshkom bol'shaya razmernost', vvedyte znovo: ";

}
while (size > 50);

cout << endl;

cout << "Zapolnyte massyv: " << endl << endl;

for(int i = 0; i < size; i++)
{
cout << "el.of mas[" << i << "]: ";
cin >> mas[i];
}

cout << endl << endl;

cout << "Vvedyty pozycuyu: ";

do
{
cin >> pos;

if(pos > size) cout << endl << "Posycuya bolsh'e razmernosty, vvedyte zanovo: ";

}
while (pos > size);

cout << endl << endl;

for(int i = (pos - 1); i < size; i++)
{
cout << mas[i] << setw(3);
}

cout << endl << endl;

return 0;
}

Неизвестный
07.09.2008, 18:22
общий
Вторую программу я НЕ комментировал. Если возникнут вопросы - пишите на личную или в мини-форум.
Форма ответа