@Jolek

Как сортировать массив с рандомными значениями?

Не могу понять как правильно записать код для сортировки массива пузырьковым методом на языке си, и как после этого мне вывести на экран отсортированный массив
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main(){
	system("chcp 1251");
	system("cls");
	system("title Pr101");
	system("Color F0");
	int i, a, n, j, b, d;
	int x[i];
	int rand(void);
	printf(" Количество элементов массива: ");
	scanf("%d", &n);
	if(n <= 0){
		printf("Введите целое положительно число!");
		return 0;
	}
	printf("\n Массив x \n");
	for(d=0; d < n; d++)
	x[i] = rand();
    printf("%d", x[i]);
    for(j=1; j<=n-1; j++){
        for(i=0; i<=n-1-j; i++){
             if(x[i]>x[i+1]){
             	b = x[i];
             	x[i] = x[i+1];
             	x[i+1] = b;
			 }
	}
}
	return 0;
}

Подскажите пожалуйста где я ошибаюсь
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 2
@res2001
Developer, ex-admin
До сортировки дело не доходит.
1. тут:
int i, a, n, j, b, d;
int x[i];

Как вы думаете, какой размерности будет массив х после этого объявления?
2. в цикле генерации рандомного массива:
for(d=0; d < n; d++)
  x[i] = rand();

Какому элементу массива вы присваиваете значение?
3. printf("%d", x[i]);
Какой элемент выводится? Сколько элементом выведется?

А это вообще праздник какой-то:
system("chcp 1251");
  system("cls");
  system("title Pr101");
  system("Color F0");

Но ошибки тут нет :)
Ответ написан
wataru
@wataru
Разработчик на С++, гуглер, экс-олимпиадник.
for(d=0; d < n; d++)
  x[i] = rand();
 printf("%d", x[i]);


Цикл по d а присваивание в x[i]. Еще скобок нет, printf выполнится только один раз после цикла.

Еще вы не выводите массив после сортировки, как вы вообще собираетесь понимать, что ваша программа работает?

В самой сортировке (циклы по i и j), вроде, ошибок нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы