Упорядочить строки массива по неубыванию его первых элементов - C (СИ)
Формулировка задачи:
Упорядочить строки массива по неубыванию его первых элементов. Не могу воплотить алгоритм сравнения первых элементов строк и далее замены этих строк, вот что получается, но работает явно не корректно:
#include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { setlocale(LC_CTYPE,"Russian"); int n=0,m=0,i=0,j=0,t=0,k,l; int **a; printf("Введите колличество строк массива: "); scanf("%d",&m); printf("Введите колличество столбцов массива: "); scanf("%d",&n); a=(int**)malloc(m*sizeof(int*)); for (i=0;i<m; ++i) { a[i]=(int**)malloc(n*sizeof(int*)); } srand(time(NULL)); for (i=0;i<m; ++i) { for(j=0;j<n; ++j) { a[i][j]=rand()%100; } } printf("Массив \n"); for(i=0;i<m;++i) { for(j=0;j<n;++j) { printf("%d ",a[i][j]); } printf("\n"); } for(i=0,j=0;i<m;i++) for(k=i+1,l=0;k<m;k++) { if(a[i][j]>a[k][l]) { for(i=0;i<m;i++) for (k=i+1;k<m;k++) { for(j=0;j<n;j++) for(l=0;l<n;l++) { t=a[i][j]; a[i][j]=a[k][l]; a[k][l]=t; } } } } printf("\n"); printf("Новый массив\n"); for(i=0;i<m;i++) { for(k=0;k<n;k++) { printf("%d ",a[i][k]); } printf("\n"); } return 0; }
Решение задачи: «Упорядочить строки массива по неубыванию его первых элементов»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <locale.h> #include <conio.h> void main(void) { //setlocale(LC_CTYPE,"Russian"); clrscr(); int n=0,m=0,i=0,j=0,t=0,k,l; int **a; printf("CTPOKu: "); scanf("%d",&m); printf("CTolbci: "); scanf("%d",&n); a=(int**)malloc(m*sizeof(int*)); for (i=0;i<m; ++i) { a[i]=(int*)malloc(n*sizeof(int*)); } srand(time(NULL)); for (i=0;i<m; ++i) { for(j=0;j<n; ++j) { a[i][j]=rand()%100; } } printf("Massiv \n"); for(i=0;i<m;++i) { for(j=0;j<n;++j) { printf("%d ",a[i][j]); } printf("\n"); } for(i=0;i<(m-1);i++) { for(j=i+1;j<m;j++) { printf("%d %d %d %d", i,j,a[i][0],a[j][0]); getch(); if((a[i][0])>(a[j][0])) { for(k=0;k<n;k++) { t=a[i][k]; a[i][k]=a[j][k]; a[j][k]=t; } } } } //printf("\n"); printf("\nnew mass\n"); for(i=0;i<m;i++) { for(k=0;k<n;k++) { printf("%d ",a[i][k]); } printf("\n"); } //return 0; getch(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д