Генерация чисел в заданном диапазоне - C (СИ)

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

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

Здравствуйте. Проблема вот в чем: нужно чтобы генерировал числа по заданному диапазону, диапазон вводит пользователь (уже обращался по этому поводу, так ничего не подсказали).По моему способу он учитывает первую границу, а вторую просто складывает((( И проверьте пожалуйста последний метод сортировки, почему то сортирует на 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();
}

Решение задачи: «Генерация чисел в заданном диапазоне»

textual
Листинг программы
#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+1)+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=0; 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=0; 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();
}

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


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

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

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