Помощь в написании студенческих работ
Антистрессовый сервис

Работа с указателями на языке Си

Лабораторная работаПомощь в написанииУзнать стоимостьмоей работы

Printf («Ошибка! Введите корректные данные: «); Printf («Ошибка! Введите корректные данные: «); Printf («Ошибка! Введите корректные данные: «); Rintf («Ошибка! Введите корректные данные: «); For ((p = &mas) && (h = &mas2); (p < &mas) && (h < &mas2); (p++) && (h++)). For ((p = &mas) && (h = &mas2); (p < &mas) && (h < &mas2); (p++) && (h++)). Case 1: printf («Введите элементы массива: «); Вывод… Читать ещё >

Работа с указателями на языке Си (реферат, курсовая, диплом, контрольная)

Лабораторная работа по дисциплине «Вычислительная техника и программирование»

Работа с указателями в языке С

Задание № 1

Подсчитать количество отрицательных элементов массива. Вывести на дисплей полученное значение. После этого изменить исходный массив следующим образом: переместить все положительные элементы массива в начало, не изменяя порядка их следования в исходном массиве. Порядок следования неперемещаемых элементов не изменять. Вывести на дисплей количество перемещенных элементов.

1. Алгоритм программы Рис. 1

массив дисплей программа код Рис. 2

2. Тестовые наборы

№ теста

Ввод элементов массива

Ожидаемый результат

Отрицательных элементов

Сортированный массив

Количество перемещенных элементов

— 1 -2 -3 -4 -5 -6 -7 -8 -9 1

1 -1 -2 -3 -4 -5 -6 -7 -8 -9

— 1 -2 3 4 5 6 -7 -8 9 1

3 4 5 6 9 1 -1 -2 -7 -8

— 1 -2 3 -4 -5 6 -7 -8 9 1

3 6 9 1 -1 -2 -4 -5 -7 -8

— 1 2 3 4 5 6 7 8 9 -1

2 3 4 5 6 7 8 9 -1 -1

3. Код программы

#include

#include

#include

#include

#include

int main ()

{

setlocale (LC_CTYPE, «rus»);

int const max_size = 100;

int mas[max_size], *p, *p1;

int mas2[max_size], *h;

int size;

p = p1 = &mas[max_size];

h = &mas2[max_size];

printf («Введите размер массива: «);

while (scanf («%i», &size) ≠ 1 || size == 0 || size > 100)

{

rintf («Ошибка! Введите корректные данные: «);

fflush stdin;

}

int menu;

printf («Менюn1 — Для ручного ввода массиваn2 — Для рандомного ввода массиваnПоле ввода: «);

while (scanf («%i», &menu) ≠ 1 || menu >= 3 || menu <= 0)

{

printf («Ошибка! Введите корректные данные: «);

fflush stdin;

}

switch (menu)

{

case 1: printf («Введите элементы массива: «);

for ((p = &mas[0]) && (h = &mas2[0]); (p < &mas[size]) && (h < &mas2[size]); (p++) && (h++))

{

scanf («%i», p);

*h = *p;

}

break;

case 2: srand (time (NULL));

int a, b;

printf («Ввод начала диапазона: «);

while (scanf («%i», &a) ≠ 1 || a == 0)

{

printf («Ошибка! Введите корректные данные: «);

fflush stdin;

}

printf («Ввод конца диапазона: «);

while (scanf («%i», &b) ≠ 1 || b == 0)

{

printf («Ошибка! Введите корректные данные: «);

fflush stdin;

}

for ((p = &mas[0]) && (h = &mas2[0]); (p < &mas[size]) && (h < &mas2[size]); (p++) && (h++))

{

*p = rand ()%(b — a + 1) + a;

*h = *p;

}

printf («Элементы массива: «);

for (p = &mas[0]; p < &mas[size]; p++)

printf («%i «, *p);

printf («n»);

break;

}

int sum = 0;

for (p = &mas[0]; p < &mas[size]; p++)

{

if (*p < 0)

{

sum++;

}

}

printf («Количество отрицательных элементов: %in», sum);

if (sum == 0)

{

printf («Отрицательных элементов нет, сортировка не требуется. n»);

system («pause»);

return 0;

}

printf («n»);

printf («Сортированый массив»);

int kol = 0, kol2 = 0;

int k;

for (p = &mas[0]; p < &mas[size]; p++)

for (p1 = &mas[0]; p1 < &mas[size-1]; p1++)

if (*p1 <= 0 & *(p1+1) > 0)

{

k = *p1;

*p1 = *(p1+1);

*(p1+1) = k;

}

for (p = &mas[0]; p < &mas[size]; p++)

if (*p > 0)

kol++;

for ((p = &mas[0]) && (h = &mas2[0]); (*p < (kol+1)) && (*h < (kol+1)); (p++) && (h++))

if (*h == *p)

kol2++;

kol = kol — kol2;

printf («nКоличество перемещенных элементов: %i», kol);

printf («n»);

printf («Элементы массива: «);

for (p = &mas[0]; p < &mas[size]; p++)

printf («%i «, *p);

printf («n»);

system («pause»);

return 0;

}

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

Таблица 2

№ теста

Ввод элементов массива

Ожидаемый результат

Вывод

Отрицательных элементов

Сортированный массив

Перемещенных элементов

— 1 -2 -3 -4 -5 -6 -7 -8 -9 1

1 -1 -2 -3 -4 -5 -6 -7 -8 -9

Тест пройден

— 1 -2 3 4 5 6 -7 -8 9 1

3 4 5 6 9 1 -1 -2 -7 -8

Тест пройден

— 1 -2 3 -4 -5 6 -7 -8 9 1

3 6 9 1 -1 -2 -4 -5 -7 -8

Тест пройден

— 1 2 3 4 5 6 7 8 9 -1

2 3 4 5 6 7 8 9 -1 -1

Тест пройден

Рис. 3

5. Вывод о работоспособности программы

Программа прошла тестирование: в результате выполнения тестов программа выдала ожидаемые результаты. Программа — работоспособна.

Показать весь текст
Заполнить форму текущей работой