Задать вопрос
@CompiledBrain

Почему не работает код?

Учу Си и решил написать код который сортирует масив
int main(void){
	int mas[]={57,1,100,6,11,45,99,12,3,7};
	 
        for(int i=(sizeof mas/sizeof mas[0]-1);i>=0;i--){
        for(int i2=(sizeof mas/sizeof mas[0]-1);i2>=0;i2--){
		    if(mas[i2]>mas[i2-1]){
			    int temp=mas[i2-1];
			    mas[i2-1]=mas[i2];
			    mas[i2]=temp;
		   }
		}
	}
	for(int i=0;i<=(sizeof mas/sizeof mas[0]-1);i++){
		printf("%d\n",mas[i]);
	}
	return 0;
}

Все работало пака я код который сортирует не вынес в функцию
void sort(int mas[]);
int main(void){
	int mas[]={57,1,100,6,11,45,99,12,3,7};
	sort(mas);
	for(int i=0;i<=(sizeof mas/sizeof mas[0]-1);i++){
		printf("%d\n",mas[i]);
	}


	return 0;
}
void sort(int mas[]){
    for(int i=(sizeof mas/sizeof mas[0]-1);i>=0;i--){
        for(int i2=(sizeof mas/sizeof mas[0]-1);i2>=0;i2--){
		    if(mas[i2]>mas[i2-1]){
			    int temp=mas[i2-1];
			    mas[i2-1]=mas[i2];
			    mas[i2]=temp;
		   }
		}
	}
	
}

Что я делаю не так ?
  • Вопрос задан
  • 151 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 1
ThePyzhov
@ThePyzhov
iOS Ninja
Отсутствует размерность массива в функции.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Что я делаю не так ?

for(int i2=(sizeof mas/sizeof mas[0]-1);i2>=0;i2--){
if(mas[i2]>mas[i2-1]){

Что происходит в условии if и дальше в цикле при i2 == 0?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы