Поменять местами минимальный и максимальный элементы массива размера 10 - C (СИ)

  1. Можете подсказать где ошибка просто здесь вообще не меняет местамиC1 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 #include <stdio.h> #include <conio.h> #include <stdlib.h> main() {      int a[10],i,max,min,r;      printf("\n vvedite elementy massiva \n");      for(i=0;i<10;i++)      {                       a[i]=rand()%100-50;                       scanf("%d",&a[i]);                       }                       max=a[0];                       for (i=0;i<10;i++)                       if (a[i]>max)                       max=a[i];                       min=a[0];                       for (i=0;i<10;i++)                       if (a[i]<min)                       min=a[i];                       for (i=0;i<10;i++)                       r=max;                       max=min;                       min=r;                       for (i=0;i<10;i++)                       printf("%d",a[i]);                       getch();                       }


textual

Код к задаче: «Поменять местами минимальный и максимальный элементы массива размера 10 - C (СИ)»

#include <stdio.h>
#include <stdlib.h>
 main()
 {
 int a[10],i,max,min,r,min_index,max_index;
    printf("\n elementy massiva \n");
 for(i=0;i<10;i++)
 {
    a[i]=rand()%100-50; //заполняем массив
    printf("%d  ",a[i]); //выводим элементы массива
 }
 max=a[0];      //  принимаем за максимальный элемент
 max_index=0;    // принимаем что макс элемент в массиве под индексом 0
 for (i=0;i<10;i++) 
    if (a[i]>max)
        {
            max=a[i];  
            max_index=i; //  запоминаем какой индекс у максимального элемента
        }
    
 min=a[0];
 min_index=0;
 for (i=0;i<10;i++)
    if (a[i]<min)
        {
            min=a[i];
            min_index=i;    
        }
 
 r=a[max_index];      //меняем местами макс и мин
 a[max_index]=a[min_index];
 a[min_index]=r;    
  
 printf("\n");  
 for (i=0;i<10;i++)  //  вывод измененного массива
    printf("%d  ",a[i]);
 getch();
 }

СДЕЛАЙТЕ РЕПОСТ

5   голосов, оценка 4.200 из 5



Похожие ответы
  1. Всем доброго времени суток! Смотрите, у меня получился код, который меняет местами (отражает зеркально) элементы, расположенные выше главной и побочной диагоналей и ниже их. Элементы диагоналей не затронуты. А мне нужно чтобы был найден максимальный элемент выше главной диагонали и минимальный – ниже ее, и нужно их поменять местами. У кого какие соображения? Я так понимаю нужно поменять условия, начиная с 3 цикла for. Должно быть как на картинке. Код:C1 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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 #include //inclusion of libraries #include #include #include   int main() { int i, j, n, massiv_min, massiv_max,swap;   time_t t;   // actual time for initialization // of random number generator   srand((unsigned) time(&t)); // generator initialization   printf("\nInput the lower border of range:"); scanf("%d", &massiv_min); printf("\nInput the upper border of range:"); scanf("%d", &massiv_max); printf("\nInput number of rows and columns:"); scanf("%d", &n);     int massiv[n][n];   printf("\nSource massive:\n");   for (i=0; i

  1. Как я понял нужно использовать пробел как разделитель слов, но как это реализовать я не знаю.

  1. В каждой строке текста поменять местами самое длинное и самое короткое слово. Максимум находит правильно, но вот я не понимаю, как определить минимум и потом поменять максимум и минимум местами и обратно собрать исходный текстC1 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 52 53 54 55 56 57 58 59 #include #include #include   int main () {   const int n=100;     char s[n][n], max_str[n], min_str[n];     char *istr;     int i,j, len, count=0;         printf ("введи текст (Enter - закончить)\n");         for (i=0; i strlen(max_str))                 {                     strcpy (max_str, istr);                 }             if (len

  1. Здравствуйте. Помогите, пожалуйста, составить функцию, которая меняет местами последний и i-й элементы массива. Массив динамический.

  1. Добрый вечер, есть программа она меняет минимальный и максимальный элемент массива. Нужно еще сделать программку которая меняет местами последний элемент массива и максимальный, то есть {1,5,3,7,6,4,9,2} - исходной массив {1,5,3,7,6,4,2,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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 #include "stdafx.h" #include #include #include #include int main() {     SetConsoleCP(1251);     SetConsoleOutputCP(1251);     int a[100], buf;     int i, n, max, min, n_max, n_min;     printf("Введите число n:");     scanf_s("%d", &n);     if (n <= 5) {         printf("Массив должен состоять из 6 и больше чисел.\n");         scanf_s("%d", &n);     }     srand(time(NULL));     printf("Массив до смены:\n");     for (i = 0; imax)         {             max = a[i];             n_max = i;         }         if (a[i]

  1. Добрый день. Помогите пожалуйста с заданием: Ввести символьную строку. Предпоследнее и последнее слова в строке поменять местами. Без указателей. Как можно проще. Пробовала так:C1 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 #include #include #include   int main() {     long i;     char str[1024] = {0};     printf("\tEnter input string\n");     scanf("%[^\n]",str);     long k;     int a[2];     k=strlen(str);     int j=0;     for(i = k; i != 0;i--){         if(j<=1){             if((str[i] == ' ' || str[i] == '\0') && str[i-1] != ' '){                 a[j]=i;                 j++;             }         }     }         for (i=0; i<2;i++){         printf("%d\n", a[i]);     }     printf("Press any key to continue\n");     getch();     return 0; }

  1. помогите пожалуйста, нужно написать программу, которая нужно ввести текст, ввести 2 словосочетания и в тексте поменять местами словосочетания

  1. мне дана задача: В каждом столбце двумерного массива поменять местами первый отрицательный элемент и последний нулевой. Я написала код, но он не хочет рабоать, я не понимаю почему, найдите пожалуйста ошибку.C1 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 52 53 54 55 56 57 58 59 60 61 62 63 #include #include int main() { int i,j,x,y,q,d,f,g,h,z;      // i j - индексы массива mas[0][2] printf("Vvedite zna4enie strok="); scanf("%d",&x);  while(x<=0)     // на случай, если пользователь введет отрицательное количество строк     {         printf("error, kol-vo elementov >0 ");         scanf("%d", &x);     } printf("\nVvedite zna4enie stolbcov="); scanf("%d",&y);  while(y<=0)     // на случай, если пользователь введет отрицательное количество столбцов     {         printf("error, kol-vo elementov >0 ");         scanf("%d", &y);     } int M[x][y]; for(i=0;i

  1. Дано матрицу 5*5 Поменять местами последнюю строчку и столбик

  1. Здравствуйте, друзья! Пытаюсь решить легкую, на первый взгляд, задачу: "Ввести 2 числа и поменять их местами без использования третьей переменной." Задача рассчитана на слушателя, поверхностно знающего только, что такое переменная, приоритеты операций, типы, ... может вывести "Hellow world!". Короче, я пока не додумался как это можно осуществить.