Читайте также:
|
|
//Программа записывает натуральное положительное
// число в обратном порядке
#include <stdio.h> //директивы препроцессора
#include <conio.h>
void main(void)
{
int s[11]; // резервирование памяти под массив длиной 11 элементов
unsigned long chislo; // выделение памяти под вводимое число
int i=0,j,ost;
clrscr();
puts("\nBведите целое число с количеством цифр не более 10");
puts("Значение числа не должно превышать величины 4 294 967 295");
scanf("%lu",&chislo); //ввод числа в диалоговом режиме
do
{ //вычисление одной цифры числа как остатка от
ost=chislo%10; //деления числа на основание системы счисления -10
s[i]=ost;
i++;
}while ((chislo/=10)!=0);
puts("Перевернутое число");
// вывод массива по одному элементу
for(j=0; j<i; j++)
printf("%d",s[j]);
getch();
}
Пример 7. Сортировка массива по возрастанию методом пузырька.
Сущность алгоритма. Выполняется сравнение двух рядом стоящих элементов массива. Если значение предыдущего элемента массива больше, чем следующего т.е. mas[i] > mas[i+1], то выполняется их перестановка. сравнения выполняются до тех пор, пока не будут просмотрены все элементы массива. В результате элемент массива, имеющий наибольшее значение, окажется на последнем месте в массиве. Затем количество элементов массива уменьшается на 1, и вновь выполняются сравнения и при необходимости, перестановки элементов массива. Сортировка заканчивается, если на предыдущем шаге не было выполнено ни одной перестановки.
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include <conio.h>
// с помощью MAXKOL задаем максимально возможное количество элементов массива
#define MAXKOL 100
void main(void)
{
int mas[MAXKOL],kol,i,j,temp,FLAG;
clrscr();
for(;;) // Проверка правильности ввода значения переменной kol
{
puts("Количество элементов");
scanf("%d",&kol);
if(kol>0 && kol <= MAXKOL)
break; //выход из цикла, если ввод выполнен правильно
printf("Недопустимое количество элементов\n");
}
randomize();
// Заполнение массива случайными числами
for(i=0; i<kol; i++)
mas[i]=rand();
puts("Не отсортированный массив ");
// Вывод не сортированного массива по 10 элементов в строке
for(i=0;i<kol;i++)
{
printf("%6d",mas[i]);
if(i%10==9)
printf("\n");
}
// Алгоритм сортировки массива
j=kol-1;
do{
FLAG=0;
for(i=0;i<j;i++)
{
if(mas[i] > mas[i+1])
{
// перестановка элементов массива
temp=mas[i];
mas[i]=mas[i+1];
mas[i+1]=temp;
FLAG=1;
}
}
j=j-1;
}while(FLAG); // сортировка заканчивается, если на предыдушем шаге
// не было выполнено ни одной перестановки в массиве
puts("\n\n Отсортированный массив ");
// вывод отсортированного массива по 10 элементов в строке
for(i=0; i< kol; i++)
{
printf("%6d",mas[i]);
if(i%10==9)
printf("\n");
}
getch();
}
Пример 8. Вывод всех трехзначных чисел, которые содержат заданную цифру. Значение цифры вводится с клавиатуры.
#include <stdio.h>
#include <conio.h>
int main(void)
{
int x[6]; /* резервирование памяти под 6 элементов массива */
int n, i, c,cifra;
clrscr();
puts("введите цифру");
scanf("%d", &cifra);
printf("Все трехзначные числа, содержащие цифру %d\n",cifra);
// во внешнем цикле перебираются все трехзначные числа
for(n=100; n<999; n++) {
c=n; //запомним анализируемое число
//во внутреннем цикле находятся все цифры для каждого трехзначного числа
for(;;)
{
x[n1]=n%10; //вычисление остатка от деления числа на 10
if(x[n1]==cifra) //проверка, имеется ли цифра в числе
{printf("%d ",c); //вывод числа, если цифра в нем есть
break; //выход из цикла, если цифра в числе есть
}
n/=10; // вычисление результата деления числа на 10
if(n==0) //если найдены все цифры числа- выход
break;
}
n=c; //восстанавливаем значение числа
}
getch();
return 0;
}
Дата добавления: 2015-07-11; просмотров: 64 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Пример3. | | | Одномерные массивы |