Заменить все отрицательные элементы массива на значение, введенное пользователем - C (СИ)
Формулировка задачи:
Такое задание: Задан вещественный массив размера N. Заменить все отрицательные элементы массива размера N на значение, введенное пользователем. Вот код:
Листинг программы
- #include <stdio.h>
- int main(int argc, char *argv[])
- {
- int N,i;
- printf("Vvedite kolichestvo elementov: ");
- scanf("%d",&N);
- if(N<3) {printf("Slishkom malo elementov!\n"); return 0;}
- printf("Vvedite elementy massiva: ");
- int arr[N];
- for(int i=0;i<N;i++)
- scanf("%d",&arr[i]);
- if (arr[i]<0) printf ("Vvedite luboe znachenie vmesto otricatelnogo: ");
- if (arr[i]<0) scanf("%d", &arr[i]);
- printf("Rezultat: ");
- for(int i=0;i<N;i++)
- printf("%d ",arr[i]);
- printf("\n");
- return 0;
- }
Решение задачи: «Заменить все отрицательные элементы массива на значение, введенное пользователем»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int N, i;
- double *arr;
- printf("Vvedite kolichestvo elementov:\n ");
- while(1){
- if(scanf("%d",&N) && N > 2)
- break;
- else
- puts("Error input!Try again.");
- getchar();
- }
- arr = malloc(N * sizeof*arr);
- if(!arr){
- puts("Memory allocation error");
- exit(1);
- }
- while(1){
- printf("Vvedite elementy massiva: \n");
- for(i = 0;i < N; i++)
- if(1 != scanf("%lf", (arr + i))){
- puts("Error input!Try again.");
- getchar();
- break;
- }
- if(i == N) break;
- }
- for(i = 0; i < N; i++)
- printf("%g ", *(arr + i));
- printf("\n");
- for(i = 0;i < N; i++){
- if (*(arr + i) < 0){
- printf ("Vvedite luboe znachenie vmesto otricatelnogo: \n");
- while(1 != scanf("%lf", (arr + i))){
- puts("Error input!Try again.");
- getchar();
- }
- }
- }
- printf("Rezultat:\n ");
- for(i = 0; i < N; i++)
- printf("%g ", *(arr + i));
- printf("\n");
- free(arr);
- return 0;
- }
Объяснение кода листинга программы
В этом коде выполняются следующие действия:
- Ввод количества элементов массива и проверка корректности ввода.
Вначале программа запрашивает у пользователя количество элементов массива и сохраняет его в переменной
N
. Затем с помощью циклаwhile
происходит проверка корректности ввода. Если пользователь ввёл некорректное значение (например, отрицательное число или букву вместо цифры), программа выводит сообщение об ошибке и просит ввести значение заново. Если же пользователь ввёл корректное значение, программа переходит к следующему этапу. - Выделение памяти под массив.
С помощью функции
malloc
выделяется память под массив. Размер массива определяется переменнойN
. Если память не удалось выделить, программа выводит сообщение об ошибке и завершает работу. - Ввод элементов массива. Программа запрашивает у пользователя ввод всех элементов массива. Для каждого элемента выполняется проверка корректности ввода. Если пользователь ввёл некорректное значение, программа выводит сообщение об ошибке и просит ввести значение заново. Если же пользователь ввёл корректное значение, оно сохраняется в соответствующем элементе массива.
- Замена отрицательных элементов массива. После ввода всех элементов массива программа проверяет каждый элемент на отрицательность. Если элемент отрицательный, программа запрашивает у пользователя новое значение и сохраняет его в соответствующем элементе массива.
- Вывод результата. После завершения ввода и замены отрицательных элементов программа выводит массив на экран. Таким образом, данный код выполняет задачу по замене отрицательных элементов массива на значения, введенные пользователем.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д