Сортировка динамического массива (исправить код) - C (СИ)
Формулировка задачи:
Здравствуйте. Написал программу, которая должна сортировать динамический массив. Но она его не сортирует, а выдаёт все элементы по порядку, причём, когда массив статический, всё работает корректно, подскажите, в чем дело.
Заранее спасибо.
#include <stdio.h> #include <stdlib.h> #include <conio.h> int main() { double *t; int i,n, j,tmp; printf("\n n="); scanf("%d", &n); t=(double *)malloc(n*sizeof(double)); printf(" Isxodny massiv:\n "); for ( i=0; i<n; i++) {printf("x[%d]=",i); scanf("%lf", &t[i]);} printf("\n"); for ( i=0; i<n; i++) for ( j=i+1; j<n; j++) if( i > j ) { tmp=i; i=j; j=tmp; } printf(" Sorted massiv:\n "); for ( i=0; i<n; i++) printf("\t x[%d]=%lf", i, t[i]); free(t); getch(); }
Решение задачи: «Сортировка динамического массива (исправить код)»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <conio.h> int main() { double *t; int i,n, j,tmp; printf("\n n="); scanf("%d", &n); t=(double *)malloc(n*sizeof(double)); printf(" Isxodny massiv:\n "); for ( i=0; i<n; i++) { printf("x[%d]=",i); scanf("%lf", &t[i]); } printf("\n"); for ( i=0; i<n; i++) for ( j=i+1; j<n; j++) if( t[i] > t[j] ) { tmp=t[i]; t[i]=t[j]; t[j]=tmp; } printf(" Sorted massiv:\n "); for ( i=0; i<n; i++) printf("\t x[%d]=%lf", i, t[i]); free(t); getch(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д