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

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

  1. AquaGen4uk

    AquaGen4uk Гость

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

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

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

    acorn PHP Developer
    Web Team

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

    AquaGen4uk Гость

    Репутация:
    0
    Извените...нужно изменить функцию 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 Гость

    Репутация:
    0
    Уже переделал так....программа зацикливаеться...не знаю уже что и делать......помогите народ пожалуйста!!!!Буду очень признателен.
    Код (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.249
  2. petiablack
    Ответов:
    0
    Просмотров:
    53
  3. disub
    Ответов:
    1
    Просмотров:
    157
  4. Kazua
    Ответов:
    1
    Просмотров:
    161
  5. Rina
    Ответов:
    0
    Просмотров:
    105

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