1

Тема: Визначити мінімальне і максимальне числа масива. Поміняти їх місцями

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main()
{

    {
    setlocale(LC_ALL, "ukr");
    int A[15];
    int i;
    int sum, min, max, a;
    // дані
    printf("Введiть елементи  масива \n", i);
    for (i=1; i<16; i++)
    scanf("%d", &A[i]);
    min = A[0];
    max = A[i];

  for (int i = 1; i < 16; i++)
    {
    if (min > A[i]) {min = A[i];}
    if (max < A[i]) {max = A[i];}
    }
    {

        a=min;
        min=max;
        max=a;

    }

    printf("Змiнена A[15]{");
    for (i = 1; i < 16; i++)
    {
        printf("%i,", A[i]);
    }
    printf("}\n"); 
  }
    return 0; }

не можу зрозуміти як вивести масив зі змінениними max і min

2

Re: Визначити мінімальне і максимальне числа масива. Поміняти їх місцями

3ffa написав:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main()
{

    {
    setlocale(LC_ALL, "ukr");
    int A[15];
    int i;
    int sum, min, max, a;
    // дані
    printf("Введiть елементи  масива \n", i);
    for (i=1; i<16; i++)
    scanf("%d", &A[i]);
    min = A[0];
    max = A[i]; // <- точно не і

  for (int i = 1; i < 16; i++) // <- Чому 16?
    {
    if (min > A[i]) {min = A[i];}
    if (max < A[i]) {max = A[i];}
    }
   // Для початку знайди ці значення в масиві, ...

    {
        // ... а тоді тоді міняй ...
        // тільки тут придивись уважно. Обмін роби із елементами масиву, а не з повітрям
        a=min;
        min=max;
        max=a;

    }
    // ... та можеш виводити
    printf("Змiнена A[15]{");
    for (i = 1; i < 16; i++) // <- Знову ж таки. Чому 16?
    {
        printf("%i,", A[i]);
    }
    printf("}\n"); 
  }
    return 0; }

не можу зрозуміти як вивести масив зі змінениними max і min

3

Re: Визначити мінімальне і максимальне числа масива. Поміняти їх місцями

 min = A[0];
          max = A[i]; // <- точно не і

спробував різні варінти яки я знаю, все одно не розумію що тут повинно стояти

4 Востаннє редагувалося lucas-kane (09.12.2022 21:04:06)

Re: Визначити мінімальне і максимальне числа масива. Поміняти їх місцями

3ffa написав:
 min = A[0];
          max = A[i]; // <- точно не і

спробував різні варінти яки я знаю, все одно не розумію що тут повинно стояти

Цікаво, що ж то були за варіанти?

max = min = A[0];

теж саме, що і

max = A[0];
min = A[0];

Прийміи ПЕРШИЙ елемент масиву за максимум та мінімум і порівнюй його із іншими елементами масиву.

Подякували: 3ffa1

5

Re: Визначити мінімальне і максимальне числа масива. Поміняти їх місцями

спробуйте так, додайте те, що виділено //  //

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main()
{

    {
    setlocale(LC_ALL, "ukr");
    int A[15];
    int i;
    int sum, min, max, a, //  indexmin, indexmax  //;
    // дані
    printf("Введiть елементи  масива \n", i);
    for (i=1; i<16; i++)
    scanf("%d", &A[i]);
    min = A[0];
    max = A[i]; // <- точно не і

  for (int i = 1; i < 16; i++)
    {
    if (min > A[i]) {min = A[i];  //   indexmin = i;  //}
    if (max < A[i]) {max = A[i];  //  indexmax = i;  //}
    }

//
  for (int i = 1; i < 16; i++) // <- Чому 16?
    {
      A[indexmin] = max;
      A[indexmax] = min;
    }
//
    // ... та можеш виводити
    printf("Змiнена A[15]{");
    for (i = 1; i < 16; i++) // <- Знову ж таки. Чому 16?
    {
        printf("%i,", A[i]);
    }
    printf("}\n"); 
  }
    return 0; }
Подякували: 3ffa1

6

Re: Визначити мінімальне і максимальне числа масива. Поміняти їх місцями

Тільки тобі потрібно запам'ятовувати не значення елементу масиву до MAX та MIN. А адреси цих елементів (індекси).

Подякували: 3ffa1

7

Re: Визначити мінімальне і максимальне числа масива. Поміняти їх місцями

вибачаюся, в циклі треба поставити умову

for (int i = 1; i < 16; i++)
    {
    if (i = indexmin) {A[i] = max;}
    if (i = indexmax) {A[i] = min;}
    }
Подякували: 3ffa1

8

Re: Визначити мінімальне і максимальне числа масива. Поміняти їх місцями

lucas-kane написав:

Тільки тобі потрібно запам'ятовувати не значення елементу масиву до MAX та MIN. А адреси цих елементів (індекси).

значення елементів теж треба запам'ятовувати, щоб потім переплутати та привласнити необхідним елементам  *CRAZY*

9

Re: Визначити мінімальне і максимальне числа масива. Поміняти їх місцями

PeSePol написав:

вибачаюся, в циклі треба поставити умову

for (int i = 1; i < 16; i++)
    {
    if (i = indexmin) {A[i] = max;}
    if (i = indexmax) {A[i] = min;}
    }

А нащо всі елементи перебирати?

A[indexmax]=min;
A[indexmin]=max;

10

Re: Визначити мінімальне і максимальне числа масива. Поміняти їх місцями

koala написав:

А нащо всі елементи перебирати?

не завжди виходить. Залежить від заліза, ОС, версії  VS. Щось робив, так ця гадина включила собі режим МІЗКОКЛЮЯ, і, поки не розжував по одній команді, відмовлялась працювати  :)

11

Re: Визначити мінімальне і максимальне числа масива. Поміняти їх місцями

У мене виходить завжди. Якщо ви наведете код, який працює не завжди - певен, форум допоможе вам знайти причину UB.