Если в последовательности нет ни одного члена со значением k, то заменить на k первый наименьший член - C (СИ)
Формулировка задачи:
Даны целые числа а1, а2,...,an , b1,b2,...,bm, k. Если в последовательности an нет ни одного члена со значением k, то следует заменить на k первый наименьший член. По такому же принципу преобразовать последовательность bm cо значением 10.
Прошу дать хотя бы алгоритм ввода одномерного массива с клавиатуры в С.
Пока сделал меньше половины и то не уверен.
Поправьте, если что.
double* init_array(int size)//Ввод последовательности { double* Array = new double[size]; for(int i=0;i<size;i++) { printf("Enter element %d",i); scanf("%lf",Array[i]); } return Array; } int_get_min_index(int x[],int size)//Поиск минимального элемента { int min=0; for(i=0;i<size;i++) if(x[i]<min) min=*x[i]; return i; }
Решение задачи: «Если в последовательности нет ни одного члена со значением k, то заменить на k первый наименьший член»
textual
Листинг программы
#include <stdio.h> #include <malloc.h> int main(void) { int i, size = 3; int* arr = (int*) malloc(sizeof(int)*size); printf("in number - %d\n", size); for(i = 0; i < size; i++) // ввод scanf("%d", &arr[i]); for(i = 0; i < size; i++) // вывод printf("%d, ", arr[i] ); putchar('\n'); free(arr); getchar(); return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
i
- счётчик для циклов;size
- размер массива;arr
- указатель на начало массива.
- Выделен массив с помощью
malloc
и получен его адрес. Размер массива в байтах вычисляется как произведение типа на размер, т.е.sizeof(int) * size
. - Введён массив с помощью
scanf
. - Выведен массив на экран с помощью
printf
. - Массив освобождён с помощью
free
. - Программа завершается, и возвращается 0, т.е. это говорит о успешном завершении работы программы.
getchar
используется для того, чтобы программа не закрылась сразу после вывода массива. Она будет ждать нажатия любой клавиши.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д