Здравствуйте. Проблема вот в чем: нужно чтобы генерировал числа по заданному диапазону, диапазон вводит пользователь (уже обращался по этому поводу, так ничего не подсказали).По моему способу он учитывает первую границу, а вторую просто складывает(((
И проверьте пожалуйста последний метод сортировки, почему то сортирует на 1 элемент меньше, чем есть.
Код:
#include "stdafx.h"
#include "conio.h"
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#include "iostream"
void main()
{
int a[20],m,t,temp,i,j,a1[20],b[20],min,k,x,y;
setlocale(LC_ALL, "rus");
printf("Введите нижний диапазон:");
scanf("%i",&x);
printf("Введите верхний диапазон:");
scanf("%i",&y);
srand(time(NULL));
for(int i=0;i<20;i++)
{
a[i]=rand()%y+x;
printf("% i",a[i]);
}
printf("\n\n");
setlocale(LC_ALL, "rus");
printf("\nВведите метод сортировки.\n1)пузырьковый метод\n2)метод вставкой\n3)сортировка посредством выбора\n");
scanf("%i",&m);
printf("Введите тип сортировки.\n1)по возростанию\n2)по убыванию\n");
scanf("%i",&t);
if((m==1)&&(t==1))
{
printf("Выбран пузырьковый метод по возростанию\n");
for (int i=0;i<20;i++)
{
for (int j=i;j<20;j++)
{
if (a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
for(int k=0;k<20;k++)
{
printf ("%i ",a[k]);
}
printf ("\n");
}
}
if((m==1)&&(t==2))
{
printf("Выбран пузырьковый метод по убыванию\n");
for (int i=0;i<20;i++)
{
for (int j=i;j<20;j++)
{
if (a[i]<a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
for(int k=0;k<20;k++)
{
printf ("%i ",a[k]);
}printf ("\n");
}
}
if((m==2)&&(t==1))
{
printf("Выбран метод вставкой по возростанию\n");
for(i=0;i<20;i++)
{
if(i==0)a1[i]=a[i];
else
{
for(j=i;j>=1;j--)
{
if(a[i]<a1[j-1])
{
a1[j]=a1[j-1];
a1[j-1]=a[i];
}
else if(j==i)a1[j]=a[i];
}
}
for(int k=0;k<20;k++)
{
if(k<=i)
{
printf("%i ",a1[k]);
}
else
{
a1[k]=0;
printf("%i ",a1[k]);
}
}
printf("\n");
}
printf("\n");
}
if((m==2)&&(t==2))
{
printf("Выбран метод вставкой по убыванию\n");
for(i=0;i<20;i++)
{
if(i==0)a1[i]=a[i];
else
{
for(j=i;j>=1;j--)
{
if(a[i]>a1[j-1])
{
a1[j]=a1[j-1];
a1[j-1]=a[i];
}
else if(j==i)a1[j]=a[i];
}
printf("\n");
}
for(int k=0;k<20;k++)
{
if(k<=i)
{
printf("%i ",a1[k]);
}
else
{
a1[k]=0;
printf("%i ",a1[k]);
}
}
printf("\n");
}
}
if((m==3)&&(t==1))
{
printf("Выбрана сортировка посредством выбора по возрастанию\n");
min=a[0];
k=0;
for(i=0; i<20; i++)
{
min=a[i];
k=i;
for(j=1; j<20; j++)
{
if(a[j]<min)
{
min=a[j];
k=j;
}
}
b[i]=min;
a[k]=123131;
for(int k1=0; k1<i; k1++)
{
printf("%i ",b[k1]);
}
printf("\n");
}
}
if((m==3)&&(t==2))
{
printf("Выбрана сортировка посредством выбора по убыванию\n");
min=a[0];
k=0;
for(i=0; i<20; i++)
{
for(j=1; j<20; j++)
{
if(a[j]>min)
{
min=a[j];
k=j;
}
}
b[i]=min;
a[k]=NULL;
for(int k1=0; k1<i; k1++)
{
printf("%i ",b[k1]);
}
min=a[i];
k=i;
printf("\n");
}
printf("\n");
}
getch();
}