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

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

Войти
Регистрация
Восстановить пароль
 
-GSS-
0 / 0 / 0
Регистрация: 23.11.2010
Сообщений: 16
#1

В чём ошибка ? - C++

12.12.2010, 11:20. Просмотров 311. Ответов 6
Метки нет (Все метки)

Задание: В одномерном массиве целых чисел заменить минимальное значение максимальным.

Решение:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
    setlocale (LC_ALL, "Russian");
    setlocale (LC_ALL, "rus");
 
    int min=1;
    int mas[10];
    int max=0;
for(int i=0; i<10; i++);
{
if(mas[max]<mas[i]) max=i;
if(mas[min]>mas[i]) min=i;
}
int buf=mas[max];
mas[max]=mas[min];
mas[min]=buf;
getchar();
getchar();
 
    return 0;
}
в чём ошибка, скажите пожалуйста. Не работает
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2010, 11:20     В чём ошибка ?
Посмотрите здесь:

В чём ошибка? - C++
#include &lt;stdio.h&gt; #include &lt;math.h&gt; main() { float Pi=M_PI; float x,y,xn=2.5,xk=7.5,xh=0.5; printf(&quot;\n X Y\n&quot;); for (x=xn;x...

В чём ошибка? - C++
Описание проблемы: Открываю файл для чтения и записи. Записываю туда информацию. После этого, если: 1)я перевожу текущую позицию в...

в чём ошибка - C++
void load_file (queue *q) { char path; int count=0; system(&quot;cls&quot;); printf (&quot;\nVvedite put', imja i rashirenie...

В чём ошибка - C++
собственно вот. программа должна вывести логин, но не выводит его. по каким средствам можно заставить программу вывести логин #include...

в чём ошибка? - C++
не пойму в чём ошибка! :( выдаёт неправильное значение... Даны натуральное число n, действительное число х. Вычислить: ...

В чём ошибка - C++
Программа вылетает когда я пытаюсь по модулю найти. Объясните где я ошибся! // 2.cpp: определяет точку входа для консольного приложения. ...

В чём ошибка? - C++
Доброго времени суток! Есть задачка, есть кривое решение. :) Суть задачки такова: найти все простые числа до 1000 и вывести их на...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
12.12.2010, 11:28     В чём ошибка ? #2
Лучше так:
C++
1
2
3
4
5
6
7
8
int imin = 0;
int imax = 0;
for (int i=1; i<N; i++)
{
  if (Arr[i] < Arr[imin])  imin = i;
  if (Arr[i] > Arr[imax])  imax = i;
}
//дальше меняем местами элементы
Вы неудачно подобрали предположительные индексы максимального и минимального элементов в самом начале.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
12.12.2010, 11:32     В чём ошибка ? #3
C++
1
for(int i=0; i<10; i++); // вот тут точки с запятой не надо
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
12.12.2010, 11:34     В чём ошибка ? #4
И в конце вывод измененного массива нужно сделать:
C++
1
2
for (int i=0; i<N; i++)
  std::cout << Arr[i] << " ";
Добавлено через 44 секунды
Цитата Сообщение от lemegeton Посмотреть сообщение
C++
1
for(int i=0; i<10; i++); // вот тут точки с запятой не надо
Точно, проглядел!
-GSS-
0 / 0 / 0
Регистрация: 23.11.2010
Сообщений: 16
12.12.2010, 13:56  [ТС]     В чём ошибка ? #5
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <clocale>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL, "Russian");
    setlocale (LC_ALL, "rus");
 
    const int size = 10;
    int mas[size] = {0};
    
    printf("Введите %d значений\n", size);
    
    for (int i=0; i<size; i=i+1)
    {
        printf("Введите элемент №%d: ", i+1);
        scanf("%d",&mas[i]);
    }
    printf("Вы ввели следующие значения:\n");
for (int i=0; i<size; i=i+1)
{
    printf("%d", mas[i]);
 
    if (i == size-1)
    {
        printf("\n");
    }
    else
    {
        printf(", ");
    }
}
 
int imin = 0;
int imax = 0;
for (int i=0; i<size; i=i+1)
{
  if (mas[i] < mas[imin])  imin = i;
  if (mas[i] > mas[imax])  imax = i;
}
 
 
    getchar();
    getchar();
 
return 0;
}
Всё равно не получается почему то (
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
12.12.2010, 14:01     В чём ошибка ? #6
Работает. А куда делся код, который менял местами элементов?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2010, 14:08     В чём ошибка ?
Еще ссылки по теме:

В чём ошибка? - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main (){ const char*str1; cin.getline(str1,255); cout&lt;&lt;str1; ...

В чём ошибка? - C++
#include &lt;iostream&gt; using namespace std; int main() { int N, i; cin &gt;&gt; N; int *arr = new int; for(int i = 0; i&lt;N;...

C++ в чём ошибка - C++
//--------------------------------------------------------------------------- #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include...

в чём ошибка ? - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;string&gt; using namespace std; void replace(string &amp;str, char c,) { ...

В чём ошибка???((( - C++
Програма для нахождения площади интеграла #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; void main(){ double...


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

Или воспользуйтесь поиском по форуму:
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
12.12.2010, 14:08     В чём ошибка ? #7
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <algorithm>
 
void _swap(int *a, int *b)
{
    int t = *a;
    *a = *b;
    *b = t;
}
 
int main()
{
    const size_t N = 5;
    int m[N] = {1, 6, 3, 7, 4}, max, min;
    max = min = m[0];
 
    for(int i = 0; i < N; ++i)
    {
        if(m[i] < min)
        {
            min = m[i];
        }
        else if(m[i] > max)
        {
            max = m[i];
        }
    }
    for(int i = 0; i < N; ++i)
    {
        for(int j = i; j < N; ++j)
        {
            if(m[i] == min && m[j] == max)
            {
                _swap(&m[i], &m[j]);
            }
        }
    }
 
    for(int i = 0; i < N; ++i)
    {
        std::cout << m[i] << ' ';
    }
 
    return 0;
}
Yandex
Объявления
12.12.2010, 14:08     В чём ошибка ?
Ответ Создать тему
Опции темы

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