двумерный массив

  • Автор темы AquaGen4uk
  • Дата начала
A

AquaGen4uk

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

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

буду очень благодарен.Заранее спасибо.
Код:
// 6i.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,p=0,srn=0,ix; float B[12],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;}



}
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 ();
}
Программа зацикливаеться...не знаю что и делать((Нужен просмотривать матрицу каждый раз сначала пока не отсортируються строки как нам нужно.Помогите пожалуйста....проблема в функции SrArifm