Автор Дмитрий Комиссаров задал вопрос в разделе Другие языки и технологии
Сортировка методом пузырька. Си. и получил лучший ответ
Ответ от Николай Веселуха[гуру]
Так что ль?
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
#define N 10
int main() {
int a[N][N], n, m, k, temp;
srand((unsigned)time(NULL));
setlocale(LC_CTYPE, "Russian_Russia.1251");
for (n = 0; n < N; n++)
for (m = 0; m < N; m++)
a[n][m] = rand() % 11;
printf(" Исходная матрица 10 х 10:
");
for (n = 0; n < N; n++, printf("
"))
for (m = 0; m < N; m++)
printf("%4i", a[n][m]);
printf("
Отсортированная матрица:
");
for (n = 0; n < N; n++) {
for (m = 1; m < N; m++) {
for (k = 0; k < N - m; k++) {
if (a[n][k] > a[n][k + 1]) {
temp = a[n][k];
a[n][k] = a[n][k + 1];
a[n][k + 1] = temp;
}
}
}
}
for (n = 0; n < N; n++, printf("
"))
for (m = 0; m < N; m++)
printf("%4i", a[n][m]);
_getch();
return 0;
}
Поменяй
if (j!=9)
на
if (a[j] > a[j+1])
Делал что-то подобное, но с чтением из файла. Держи, поможет чем:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
const int n = 5;
int a[n];
ifstream f("file.txt");
for (int i = 0; i < n; ++i)
{
f >> a;
cout << a << endl;
}
// soring
for (int i = n - 1; i >= 1; --i)
for (int j = 0; j < i; ++j)
{
if (a[j] > a[j + 1])
{
int foo = a[j];
a[j] = a[j + 1];
a[j + 1] = foo;
}
}
cout << endl;
for (int i = 0; i < n; ++i)
cout << a << endl;
}
Сортировка массива на Си
for (int i=1; i<=n-1; i++) {
for (int j=1; j<=n-1; j++) {
if (b[j] < b[j+1]) {
подробнее...