Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> задание на массивы, мин.макс.замена эл-тов. 
:(
    Опции темы
Гость_Евгений
Дата 2.1.2006, 19:52 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Всех с наступившим новым годом!
помогите пожалуйста выполнить задание, нужно найти в генерируемом массиве минимальный и максимальный элементы и поменять их местами.
Массив генерируется, выводится, а вот макс и мин показывает неверно, менять их еще не пробовал

Код

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define SIZE 10

int matrix [SIZE][SIZE];
void randMatrix (int limit);
void minmax();

int main() {
  int i, j, limit;
  printf ("Limit :  ");
  scanf("%d",&limit);
  if (limit > 999 || limit < 0)
    printf ("Error \n");
  else {
    randMatrix (limit);
    minmax();
  }
  printf ("\n");
  system ("Pause");
  return 0; 
}
  
void minmax(){
int i, j;
int matrmax = 0;
int matrmin = 999;
  for(i = 0; i < SIZE; i++) { 
    for (i = 0 ; i < SIZE; i++) { 
      if (matrix[i][j] > matrmax) {     
        matrmax = matrix[i][j];  
        }
      if (matrix[i][j] < matrmin){
        matrmin = matrix[i][j];     
        }  
      }
    } 
    printf ("\n Matrix max element : %d ", matrmax); 
    printf ("\n Matrix min element : %d ", matrmin); 
}
     
void randMatrix (int limit) {    
  int i, j; 
  for(i = 0; i < SIZE; i++ ) { 
    printf("\n");          
    for (j = 0; j < SIZE; j++) { 
      matrix[i][j] = 1.0 + (int) ( (limit * rand()) / (RAND_MAX + 1.0) );
      printf("%2d ", matrix[i][j]);
      }
   }
}  

  Вверх
DeadSoul
Дата 2.1.2006, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: 2
Всего: 11



ОТкуда это
Код

int matrmax = 0;
int matrmin = 999;

присваивание?

Заменить на
Код

int matrmax = matrix[0][0];
int matrmin = matrix[0][0];



--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
Dov
Дата 2.1.2006, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 15
Всего: 88



Цитата
void minmax(){
int i, j;
int matrmax = 0;
int matrmin = 999;
  for(i = 0; i < SIZE; i++) { 
    for (i = 0 ; i < SIZE; i++) {

Для начала во 2 цикле поменяй i на j, а там посмотрим.


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Guest
Дата 2.1.2006, 21:03 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Хех, спасибо, глупая ошибка, оба варианта работают как надо smile
А как их местами поменять?
  Вверх
Dov
Дата 2.1.2006, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 15
Всего: 88



Цитата(Guest @ 2.1.2006, 21:03)
А как их местами поменять?

Например, можно запомнить индексы мин. и макс. эл-тов и поменять местами эл-ты по этим индексам.



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Dov
Дата 2.1.2006, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 15
Всего: 88



Просто для иллюстрации, твоя же прога, чуток изменённая:
Код
#include <stdio.h>       
#include <math.h>        
#include <stdlib.h> 

#define SIZE 10 

int     matrix[SIZE][SIZE];

void    randMatrix(int limit);  
void    minmax(); 
void    printMatrix();

int main()
{
    int         limit; 

    printf("Limit :  ");        
    scanf("%d", &limit);

    if(limit > 999 || limit < 0)
    {
        printf("Error \n");
    }
    else
    {
        randMatrix(limit);
        printMatrix();
        minmax();
        printMatrix();
    }

    printf("\n");       
    system("Pause");

    return 0;
}       

void minmax()
{
    int         i,                      
                j,
                temp,
                min_i   = 0,
                min_j   = 0,
                max_i   = 0,
                max_j   = 0;      
    int         matrmax = matrix[0][0];    
    int         matrmin = matrix[0][0];

    for(i = 0; i < SIZE; i++)
    {
        for(j = 0 ; j < SIZE; j++)
        {
            if(matrix[i][j] > matrmax)
            {
                matrmax = matrix[i][j];
                max_i   = i;
                max_j   = j;
            }
            else if(matrix[i][j] < matrmin)
            {
                matrmin = matrix[i][j];
                min_i   = i;
                min_j   = j;
            }
        }
    }

    printf("\n Matrix max element : %d ", matrmax);     
    printf("\n Matrix min element : %d \n", matrmin);

    temp                 = matrix[max_i][max_j];
    matrix[max_i][max_j] = matrix[min_i][min_j];
    matrix[min_i][min_j] = temp;
}       

void randMatrix(int limit)
{
    int         i,
                j;      
    for(i = 0; i < SIZE; i++)
    {
        for(j = 0; j < SIZE; j++)
        {
            matrix[i][j] = 1 + (int) ((limit * rand()) / (RAND_MAX + 1));
        }
    }
} 

void printMatrix()
{
    int         i,
                j;      
    for(i = 0; i < SIZE; i++)
    {
        printf("\n");           
        for(j = 0; j < SIZE; j++)
        {
            printf("%4d ", matrix[i][j]);
        }
    }
}



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Гость_Евгений
Дата 3.1.2006, 15:55 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Большое спасибо, очень помогли smile
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0655 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.