Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие С(часть1-3).doc
Скачиваний:
23
Добавлен:
12.02.2015
Размер:
854.02 Кб
Скачать

Задание 10. Итерационные циклы. Простейшие задачи

Пример. Дано натуральное число N. Определить его первую и последнюю цифры.

#include <stdio.h>

#include <conio.h>

Void main()

{

long n,m;

Int last;

printf("Enter n: ");

scanf("%d",&n);

m=n; // Сохранили значение исходного числа

last=m%10;

while (m>9) m/=10;

printf("\n In number: %d%s%d",n," first digit: ",m);

printf(", last digit: %d",last);

getch();

}

  1. Подсчитать количество цифр в записи заданного десятичного натурального числа и вывести их на экран в обратном порядке.

  2. Дано натуральное число n. Подсчитать сумму цифр этого числа, находящихся на нечетных позициях (нумерация позиций идет слева направо).

  3. Дано натуральное число n. Найти сумму цифр числа, находящихся на четных позициях (старшая цифра числа находится на первой позиции).

  4. Даны натуральные числа n и k. Определить k–ю слева цифру числа n.

  5. Дано натуральные числа n и k. Вычислить сумму k старших разрядов (находящихся слева) цифр числа.

  6. Дано натуральные числа n и k. Вычислить произведение k старших разрядов (находящихся слева) цифр числа.

  7. Дано натуральное число n. Вычислить сумму его цифр.

  8. Дано натуральное число n. Вычислить произведение его цифр.

  9. Дано натуральное число n. Найти разность между первой цифрой этого числа и суммой всех остальных.

  10. Выбросить из записи введенного натурального числа n цифры 0 и 5, оставив прежним порядок остальных цифр. Распечатать это число.

  11. Целое положительное десятичное число m записать в восьмеричной системе счисления и распечатать число, состоящие из разрядов этой записи, выписанных в обратном порядке. Например, m=477, результат n=537.

  12. Целое положительное число m записать в двоичной системе счисления и распечатать число, состоящие из разрядов этой записи, выписанных в обратном порядке. Например, m=37, результат n=101001.

Задание 11. Одномерные массивы

Пример. Сформировать массив целых чисел X(N), элементами которого являются случайные числа в диапазоне [–20..20]. Найти максимальный элемент и его номер.

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

Void main()

{

const int N=100;

int a[N],n;

do

{

printf("\nEnter n (1-%d%s",N,"): ");

scanf("%d",&n);

}

while (n<=0 || n>N);

const int k=20;// граница диапозона [-20,20]

int max=-21,imax=-1;

printf("\n");

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

{

a[i]= rand()%(k*2+1)-k; //генерируем массив случайных чисел

//в диапазоне [-k..k]

printf("a[%d%s%d%s",i, "]=",a[i], "\n");//вывод элемента массива на экран

if (a[i]>max) {max=a[i]; imax=i;}// поиск максисума

}

printf("\nmax=a[%d%s%d",imax, "]= " , max);

getch();

}

  1. В целочисленном массиве X(N), сгенерированном случайным образом, нечетные элементы увеличить в два раза, а у элементов с четными номерами заменить знаки на противоположные.

  2. В целочисленном массиве, сгенерированном случайным образом, определить количество перемен знака.

  3. В целочисленном массиве, сгенерированном случайным образом, найти наименьший из положительных элементов.

  4. Для целочисленного массива, сгенерированного случайным образом, определить, образуют ли его элементы неубывающую последовательность.

  5. Проведено измерение роста 70 студентов. Данные записаны в массиве ROST. Разместить в массиве NR номера тех студентов, чей рост меньше 180 см и подсчитать число таких студентов.

  6. Результаты сдачи экзамена группой из N студентов находятся в массиве REZ. Подсчитать количество студентов, сдавших экзамен на «хорошо» и «отлично».

  7. Из целочисленного массива X(N), сгенерированного случайным образом, переписать в массив Y элементы массива X c нечетными номерами, а в массив Z – элементы массива X, значения которых кратны 5.

  8. Сформировать случайным образом массив X(N), элементами которого могут быть только 0 и 1. Проверить, существует ли строгое чередование 0 и 1.

  9. Сформировать целочисленный массив X (N), элементами которого являются случайные числа из диапазона [–3..3]. Определить, сколько раз в нем встретилось два подряд идущих нулевых элемента.

  10. Сформировать целочисленный массив X(N), элементами которого являются случайные числа из диапазона [–20..10]. Найти величину наибольшего среди отрицательных чисел этого массива.

  11. Сформировать вещественный массив X1(N), элементами которого являются случайные числа из диапазона [0..50]. Переслать из него в массив X2 все элементы, значения которых больше 24 и меньше 34.

  12. Сформировать целочисленный массив X(N), элементами которого являются случайные числа из диапазона [–40..40]. Подсчитать сумму элементов этого массива, значения которых кратны 8.