Задание 2.

Вариант №4

Задание 1.

Доработать программу, которая проверяет, есть ли в числе повторяющиеся цифры (см. лекции), чтобы она выводила, какие числа повторяются.

Исходный код программы:

#include <stdio.h>

#include <locale.h>

int main (){

int digits_repeat[10] = {0};

char ch;

int n;

int kol = 0;

setlocale(LC_ALL,"Rus");

printf("Введите число:\n");

do

{

scanf("%c", &ch);

n = ch - '0';

if (n > 0)

digits_repeat[n]++;

}

while (n > 0);

for (int i = 0; i < 10; ++i)

if (digits_repeat[i] > 1)

printf("Цифра %d повторяется %d раз\n", i, digits_repeat[i]);

return 0;

}

Результат работы программы:

 

Задание 2.

Написать программу по обработке одномерных массивов в соответствии с вариантом задания. Предусмотреть возможность ввода даннях как с клавиатуры, так и с использованием функции rand().

 

Исходный код программы:

 

/********************************************* */

/* Лабораторная работа №7 */

/* Реализация программ с меню */

/* Выполнил студент гр. 516 Дунайцев Н.Р */

/**********************************************/

#include <stdio.h>

#include <locale.h>

#include <stdlib.h>

#include <conio.h>

typedef int Bool;

 

int main ()

{

int cmd, n;

int massive [20]= {0};

 

setlocale (LC_ALL,"Rus");

printf("Введите количество ячеек в массиве:\n");

scanf("%d",&n);

do{

printf("Нажмите 1 и ввод если хотите ввести случайные числа в массив.\n");

printf("Нажмите 2 и ввод если хотите ввести данные в массив самостоятельно.\n");

scanf ("%d",&cmd);

switch(cmd){

case 1:

for(int i = 0; i < n; i++)

massive[i] = rand()%200-100;

break;

case 2:

for (int i = 0; i < n; ++i)

scanf("%d", &massive[i]);

break;

 

default: printf("Error. Try again\n");

}

}

while(cmd != 1 && cmd != 2);

 

 

int first = 0;

int second = 0;

int sum = 0;

for (int i = 0; i < n; ++i)

if (massive[i] >= 0)

{first = i;printf("%d\n",massive[first]);break;}

for (int i = n-1; i >= 0; i--)

if (massive[i] >= 0)

{second = i;printf("%d\n",massive[second]);break;}

for (int i = first;i<=second; ++i)

sum += massive[i];

 

 

for (int i = 0; i < n; ++i)

printf("%d ", massive[i]);

printf("\n");

 

printf("sum: %d\n", sum);

getch();

}

 

Результат работы программы:

Пример 1:

Пример 2:

Выводы:

Изучили возможности язика С по организации упорядоченных структур даннях, овладели основними принципами обработки одномерных массивов.