• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

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

AquaGen4uk

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

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

буду очень благодарен.Заранее спасибо.
 
4. старайтесь ВСЕГДА сначала решить задачу САМОСТОЯТЕЛЬНО, ну а когда не выходит ОБЯЗАТЕЛЬНО публикуйте здесь свой код, даже если он не работает. Поверьте, это значительно повышает к вам уважение. Халявщиков, которым нужно, что бы им просто кто-нить нахаляву сделал - здесь не любят. Да и исправить мелкую ошибку в готовом коде легче, чем писать все заново.

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



}
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Курс AD