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

Тема в разделе "C/C++/C#", создана пользователем AquaGen4uk, 12 янв 2011.

  1. AquaGen4uk

    AquaGen4uk Гость

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

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

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

    acorn PHP Developer

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

    AquaGen4uk Гость

    Извените...нужно изменить функцию SrArifm
    Код (Text):
    // 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 Гость

    Уже переделал так....программа зацикливаеться...не знаю уже что и делать......помогите народ пожалуйста!!!!Буду очень признателен.
    Код (Text):
    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;
    }
    }



    }
     
Загрузка...
Похожие Темы - Задача сортировка строк
  1. Exilien
    Ответов:
    2
    Просмотров:
    3.153
  2. Янчик
    Ответов:
    0
    Просмотров:
    480
  3. TrishaRay
    Ответов:
    1
    Просмотров:
    781
  4. elzim
    Ответов:
    0
    Просмотров:
    929
  5. ShaoKahn
    Ответов:
    0
    Просмотров:
    1.117

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