Упорядочить строки массива по неубыванию его первых элементов - 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();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д