1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Задача: сортировка строк матрицы методом обмена

Тема в разделе "Вопросы новичков и не только", создана пользователем AquaGen4uk, 12 янв 2011.

  1. AquaGen4uk

    AquaGen4uk Гость

    Репутация:
    0
    помогите пожалуйста
    нужно написать функцию на языке С

    В матрице размером 12x6 упорядочить строки матрицы по убыванию средних арифметических значений строк методом обмена, при котором просмотр возобновляется сначала.

    буду очень благодарен.Заранее спасибо.
     
  2. acorn

    acorn PHP Developer

    Репутация:
    0
    Регистрация:
    29 авг 2004
    Сообщения:
    585
    Симпатии:
    3
    или 50$
     
  3. AquaGen4uk

    AquaGen4uk Гость

    Репутация:
    0
    Извените...нужно изменить функцию SrArifm
    Код:
    // 6.cpp: определяет точку входа для консольного приложения.
    //
    
    #include "stdafx.h"
    #include <stdio.h>
    #include <conio.h>
    #include <locale.h>
    #include <stdlib.h>
    #include <math.h>
    
    void FormMatr(int *A, int n,int m)
    {
    int i,j;
    for(i=0;i<n;i++)
    for(j=0;j<m;j++)
    *(A+i*m+j)=-50+rand()%100;
    }
    void PrintMatr(int *A, int n,int m)
    {	int i,j;
    for(i=0;i<n;i++)
    {	for(j=0;j<m;j++)
    printf("%6d",*(A+i*m+j));
    printf("\n");
    }
    }
    void SrArifm(int *A, int n,int m)
    {
    
    int i,j,ib=0,srn=0,ix,B[12],p=0,sr=0,s=0;
    for(j=0;j<m;j++)
    {
    for(i=0;i<n;i++)
    s=s+*(A+i*m+j);
    B[ib]=s/n;
    ib++;
    }
    for (j=0;j<n;j++)
    if (B[ib+1]>B[ib]) 
    {for (ix=0;ix<n;ix++)
    {
    
    p=*(A+ix*m+j);
    *(A+ix*m+j)=*(A+ix*m+j-1);
    *(A+ix*m+j-1)=p;
    
    }
    j=0;}
    
    
    
    }
    void main()
    {
    int A[15][15],n,m;
    printf("Vvedite n i m (12;6)");
    scanf("%d %d",&n,&m);
    FormMatr(&A[0][0],n,m);
    PrintMatr(&A[0][0],n,m);
    SrArifm(&A[0][0],n,m);
    printf("Ots massiv\n");
    PrintMatr(&A[0][0],n,m);
    getch ();
    }
     
  4. AquaGen4uk

    AquaGen4uk Гость

    Репутация:
    0
    Уже переделал так....программа зацикливаеться...не знаю уже что и делать......помогите народ пожалуйста!!!!Буду очень признателен.
    Код:
    void SrArifm(int *A, int n,int m)
    {
    
    int i,j,ib=0,p=0,srn=0,ix; float B[15],s=0,pp=0;
    for(i=0;i<n;i++)
    {
    for(j=0;j<m;j++)
    s=s+*(A+i*m+j);
    B[ib]=s/m;
    s=0;
    printf("%f\n",B[ib]);
    ib++;
    
    }
    for (i=0;i<n-1;i++)
    if (B[i]<B[i+1]) 
    {for (j=0;j<m;j++)
    {
    
    p=*(A+i*m+j);
    *(A+i*m+j)=*(A+(i+1)*m+j);
    *(A+(i+1)*m+j)=p;
    pp=B[i];
    B[i]=B[i+1];
    B[i+1]=pp;
    i=0;
    }
    }
    
    
    
    }
     
Загрузка...

Поделиться этой страницей