Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГР Программирование - Опарин И.А. - 2 семестр....docx
Скачиваний:
5
Добавлен:
18.09.2019
Размер:
62.47 Кб
Скачать

Задача 2(№133)

Постановка задачи: Напишите функцию, возвращающую ссылку на максимальный элемент массива. Используйте ее в программе, которая заменит значение максимального элемента массива на среднее арифметическое значение элементов этого массива.

Алгоритм решения: программа использует функцию на поиск максимального элемента в массиве, заменяя значение этого максимального элемента средним арифметическим элементов заданного массива.

Текст программы:

include <iostream>

#include <conio.h>

using namespace std;

int& max(int x[],int n)

{

int i,k,max2=x[0];

for(i=0;i<n;i++){

if(x[i]>max2){

k=i;

max2=x[i];

}

}

int& max1=x[k];

return max1;

}

int main()

{

setlocale(LC_ALL,"Russian");

int n=8,avr,i,sum=0;

int x[]={12,-1,-5,3,44,23,5,9};

cout<<"Исходный массив: ";

for (i=0;i<n;i++){

cout<<x[i]<<" ";

}

for(i=0;i<n;i++){

sum+=x[i];}

avr=sum/n;

cout<<"\nСреднее значение массива = "<<avr;

max(x,n)=avr;

cout<<"\nИзмененный массив: ";

for (i=0;i<n;i++){

cout<<x[i]<<" ";

}

getch();

return 0;

}

Задача 3(№142)

Постановка задачи: Найдите и выведите самую длинную строку текстового файла.

Алгоритм решения: ввести с клавиатуры имя входного файла, затем читать строки из файла, пока не достигнут его конец. Находим длину строки и запоминаем её в переменной В, количество символов в переменной К. Если количество прочитанных строк (К) сравнимо со счетчиком (i), то выводим на печать эту строку. В конце программы закрываем входной файл.

Текст программы:

#include <fstream>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

const int lenname=13; //Длина строки с именем файла

const int MAXLEN=200; //Максимальная длина строки

int main()

{

ifstream fin; //Файловый поток для ввода

char filename[lenname]; //Массив для имени файла

char line[MAXLEN]; //Массив для строк

cout<<"Ввести имя входного файла ";

cin>>filename;

fin.open(filename);

if(!fin){ //Если не удалось открыть входной файл

cerr<<"Не удалось открыть файл "<<filename<<'\n';

exit(1);

}

int i=0; //Количество прочитанных символов

int A; //Длина прочитанной строки

int B=1; //Единичная строка

int K; //Количество символов

cin.get(); //Убираем код из cin

while (!fin.eof()){ //Пока не достигнут конец файла

fin.getline(line,MAXLEN); //Читаем строку из файла

A=strlen(line); //Нахождение длины строки

if(A>B){ //Если текущая строка больше единичной

B=A; //то в В запоминаем длину прочитанной строки

K=i; //переменной К присваиваем количество прочитанных символов

}

i++; //Увеличиваем счётчик

}

fin.close();

fin.open(filename);

i=0; //Зануляем счетчик

while(!fin.eof()){ // Пока не достигнут конец файла

fin.getline(line,MAXLEN); //Читаем строку из файла

if(i==K){ //Если счетчик сравним с количеством прочитанных символов,

cout<<line; //то выводим строку на печать

}

i++; //Увеличиваем счетчик

}

fin.close(); //Закрытие входного файла

getch();

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]