Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
qwit
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 14
#1

поменять местами максимальный и последний элементы - C++

19.07.2013, 11:17. Просмотров 294. Ответов 5
Метки нет (Все метки)

Дана последовательность а1…а30. поменять местами максимальный и последний элементы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <stdlib.h>
int main()
{
    FILE  *xf;
    int i, x, n=30,max,t;
xf = fopen("text.txt", "w"); 
printf("vvodim el-ti posledovatelnosti X..\n");
for (i=0; i<n; i++)
{
    x=rand() %15-5;
    fprintf(xf,"%7d ", x); /*Определенное кол-во знаков формата 
                            пригодится при последующей записи*/
}
fclose(xf);
 
 
printf("zapis posledovatelnostey v fail zavershena. \nposledovatelnost Х:\n");
getchar();
/*Открытие файла и выполнение необходимых операций
    +   вывод на экран обрабатываемой последовательности*/
 
xf = fopen("text.txt", "r");
    max=-6;
    for (i=0; i<n; i++)
        {
        fscanf(xf,"%d " , &x);
            printf("%d ",x); 
            if (max<x)
                max=x;
как поменять местами с дозаписью в файл?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2013, 11:17     поменять местами максимальный и последний элементы
Посмотрите здесь:

C++ В массиве переставить местами первый и максимальный элементы, а также последний и минимальный
Поменять местами 1 и последний, 2 и предпоследний элементы одномерного массива C++
C++ Поменять местами первый и последний элементы массива
Поменять местами максимальный и последний отрицательный элементы массива C++
C++ Поменять местами первый и последний элементы непустого списка
C++ Односвязный список, поменять местами элементы (максимальный и последний)
C++ Поменять местами наибольший и последний элементы массива
C++ Массивы. Поменять местами первый минимальный и последний максимальный элементы
C++ Поменять в списке местами первый минимальный и последний максимальный элементы
Поменять местами последний столбик матрицы со столбиком, который содержит максимальный элемент C++
C++ Поменять местами первый отрицательный и последний положительный элементы
Поменять местами последний и предпоследний элементы односвязного списка C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ruslawik
9 / 33 / 1
Регистрация: 25.05.2012
Сообщений: 113
19.07.2013, 12:16     поменять местами максимальный и последний элементы #2
С дозаписью нужно открывать поток на чтение файла не с параметром "r", а с параметром "a+"
Тогда все что Вы пишите в файл будет дозаписано.

xf = fopen("text.txt", "a+");
qwit
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 14
19.07.2013, 12:20  [ТС]     поменять местами максимальный и последний элементы #3
как поменять местами максимальный и последний элементы в файле ?
ruslawik
9 / 33 / 1
Регистрация: 25.05.2012
Сообщений: 113
19.07.2013, 12:21     поменять местами максимальный и последний элементы #4
Сначала считайте все в массив, поменяйте, а потом уже пишите в файл
qwit
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 14
19.07.2013, 12:36  [ТС]     поменять местами максимальный и последний элементы #5
спасибо

Добавлено через 8 минут
ruslawik, не могли бы вы написать код программы?
ruslawik
9 / 33 / 1
Регистрация: 25.05.2012
Сообщений: 113
19.07.2013, 12:50     поменять местами максимальный и последний элементы #6
Нууу) у меня сейчас не так много времени. Сейчас в личку напишу

Добавлено через 9 минут
ладно вот. Примерно такой код. Но я не тестил, будут баги напиши

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 # include <fstream>
 
 using namespace std;
 
       ifstream cin("input.txt");
       ofstream cout("output.txt");
       
 int a[10000];
 int mx = -100000; 
 int coor=29;
 
 int main()
 {
     for(int i=0; i<30; ++i)
     {
            cin>>a[i];
            if(a[i]>mx)
            {
                       mx=a[i];
                       coor = i;
            }
     }
     
     swap(a[29],a[coor]);
     
     for(int i=0; i<30; ++i)
     {
             cout<<a[i]<<" ";
     }
     
 }
Добавлено через 3 минуты
Код понял? Короче в файл input.txt РУЧКАМИ вводишь 30 чисел через пробел.
Запускаешь программу, и она в файл output.txt выводит массив с измененной последовательностью
Yandex
Объявления
19.07.2013, 12:50     поменять местами максимальный и последний элементы
Ответ Создать тему
Опции темы

Текущее время: 13:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru