Генерация чисел в заданном диапазоне - 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(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д