Отсортировать массив по возрастанию - C (СИ) (71033)
Формулировка задачи:
вот код, задача отсортировать массив по возрастанию, а он ,вместо отсортированного массива, выводит в ответ одни нули
#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
Листинг программы
float mass_q[100];
int i, n;
srand(time(NULL));
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, j;
for (i = n - 1; i >= 0; i--)
{
for (j = 0; j < i; j++)
{
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("%g\t", mass_q[i]);
Объяснение кода листинга программы
Код представлен на языке C и выполняет следующие действия:
- Объявляет массив
mass_qтипаfloatс размером 100 элементов. - Инициализирует переменную
iдля использования в циклах. - Инициализирует переменную
nс помощью функцииscanf, которая считывает число, введенное пользователем, и сохраняет его в переменнойn. - Инициализирует переменную
srandс помощью функцииtime(NULL), которая используется для инициализации генератора случайных чисел. - Заполняет массив
mass_qслучайными числами с помощью циклаforи функцииrand(). - Выводит сообщение
Ishodnyy_massivи значения массиваmass_qс помощью циклаforи функцииprintf(). - Инициализирует переменные
polиotritдля подсчета положительных и отрицательных чисел в массиве. - С помощью цикла
forи условных операторовifподсчитывает количество положительных и отрицательных чисел в массиве. - Используя два вложенных цикла
for, сортирует массивmass_qв порядке возрастания. - Выводит сообщение
otsortirovannyy masivи значения отсортированного массиваmass_qс помощью циклаforи функцииprintf().