Программа выдает одни нули при сортировке массива - C (СИ)

Узнай цену своей работы

Формулировка задачи:

вот код, программа вместо того , что-бы отсортировать массив по возрастанию , выдает на вывод одни нули
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
main(){
clrscr();
float mass_q[100];
int n;
printf("Vvedite N ");scanf("%d", &n);
printf("\n\n");
for (int i=0;i<n;i++)
mass_q[i]=((rand()%100-20));
printf("Ishodnyy_massiv\n");
for(i=0;i<n;i++)
printf("mass_q[%d]=%g\t",i, mass_q[i]);
    int pol=0,otrit=0;
    for (i=0; i<n; i++)
    {if(mass_q[i]>0)pol++;
    if(mass_q[i]<0)otrit++;}
    printf("\n\n\notritsatelnyh=%d\n\n\n",otrit);
    // bylo pokazano skolko otritsat eleventow
    int tmp;
    for(i=0;i<n;i++){
    for(int j=i;j<10;j++){
    if(mass_q[j]<mass_q[j+1]){tmp=mass_q[j];mass_q[j+1];mass_q[j+1]=tmp;}
    }
    }

printf("otsortirovannyy masiv\n");
for(i=0;i<n;i++)
printf("%d\t", mass_q[i]);
}

Решение задачи: «Программа выдает одни нули при сортировке массива»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
        int pol=0, otrit=0;
        float mass_q[100];
        int tmp, n, i, j;
        printf("Vvedite N ");
        scanf("%d", &n);
        printf("\n\n");
        for (i = 0; i < n; i++)
                mass_q[i]=((rand()%100-20));
        printf("Ishodnyy_massiv\n");
        for(i=0;i<n;i++)
                printf("mass_q[%d]=%g\t",i, mass_q[i]);
        for (i=0; i<n; i++)
        {
                if(mass_q[i]>0)pol++;
                if(mass_q[i]<0)otrit++;
        }
        printf("\n\n\notritsatelnyh=%d\n\n\n",otrit);
        // bylo pokazano skolko otritsat eleventow
        printf("%d\n", i); 
        for(; i > 0; i--)
        {
                for(j = 0 ; j < n; j++) //заменим 10 на n
                {
                        if(mass_q[j] > mass_q[j+1])
                        {
                                tmp = mass_q[j];
                                mass_q[j] = mass_q[j+1];
                                mass_q[j+1] = tmp;
                        }
                }
        }
        printf("otsortirovannyy masiv\n");
        for(i = 0; i < n; i++)
        printf("%f\t", mass_q[i]);
        return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек: stdio.h, stdlib.h, math.h
  2. Объявление переменных: pol, otrit, mass_q, tmp, n, i, j
  3. Ввод числа N с клавиатуры и сохранение его в переменной n
  4. Заполнение массива mass_q случайными числами от -20 до 20 с шагом 1
  5. Вывод исходного массива на экран
  6. Подсчет количества положительных и отрицательных чисел в массиве и сохранение их в переменных pol и otrit соответственно
  7. Вывод количества отрицательных чисел на экран
  8. Начиная с самого большого элемента, производится сортировка массива по убыванию
  9. Вывод отсортированного массива на экран
  10. Возврат 0, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.714 из 5
Похожие ответы