Массивы, коррекция кода - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Для одномерного массива целых чисел B (n) найти частное от деления суммы индексов парных положительных элементов на произведение индексов нечетных элементов заданного массива, где 0 <= n <= 55. В чем ошибка:
#include <stdio.h>
#include <math.h>
 
main() {
int d, n, i, b[55];
int P = 1; 
int S = 0; 
int Vidpovid;
 
    while(1) {
               printf("Vvedit' n: ", n);
               scanf("%d", &n);
               d = (0 <= n) && (n <= 55);
               if(d) break;
               printf("P.P.V!!!");
}    
     
    for(i = 0; i < n; i++) {
               printf("\nVvedit' znachennia elementiv masuvy b [%d]: ", i);
               scanf("%d", &b[i]);
}     
      
               printf("\nVuvodumo masuv b[%d]: ", n);
               for(i = 0; i < n; i++) {
                     if( i % 2 == 0)
                         S = S + i;
                           else
                               if( i % 2 != 0 )
                                   P = P * i;
}
 
               printf("\n\n\nVuvodumo masuv b[%d]: ", n);
               for(i = 0; i < n; i++) {
                     printf("%d", b[i]);
}
               Vidpovid = S % P;
                        printf("%d", &Vidpovid);                   
                        scanf("%d", &n);
               }

Решение задачи: «Массивы, коррекция кода»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
 
main() {
int d, n, i, b[55];
int P = 1; 
int S = 0; 
int Vidpovid;
 
    while(1) {
               printf("Vvedit' n: ", n);
               scanf("%d", &n);
               d = (0 <= n) && (n <= 55);
               if(d) break;
               printf("P.P.V!!!");
}    
     
    for(i = 0; i < n; i++) {
               printf("\nVvedit' znachennia elementiv masuvy b [%d]: ", i);
               scanf("%d", &b[i]);
}     
      
               for(i = 0; i < n; i++) {
                     if( b[i] % 2 == 0 && b[i] > 0)
                         S = S + i; // S += i
                           else
                               if( b[i] % 2 != 0  && i != 0)
                                   P = P * i; // P *= i
}
               printf("\nSuma dorivnue: %d", S);
               
               printf("\nDobytok dorivnue: %d", P);
                     
 
               printf("\n\n\nVuvodumo masuv b[%d]: ", n);
               for(i = 0; i < n; i++) {
                     printf("%d ", b[i]);
}
               Vidpovid = S % P;
                        printf("\n Chastka dorivnue: %d", Vidpovid);                   
                        scanf("%d", &n);
               }

Объяснение кода листинга программы

  1. Ввод количества элементов массива и самого массива.
  2. Проверка корректности ввода количества элементов массива.
  3. Инициализация переменных для хранения суммы четных положительных элементов и произведения нечетных элементов.
  4. Цикл по всем элементам массива.
  5. Проверка на четность и положительность текущего элемента массива.
  6. Если элемент четный и положительный, то прибавляем его индекс к сумме четных положительных элементов.
  7. Если элемент нечетный и не является первым элементом массива, то умножаем его на произведение нечетных элементов.
  8. Вывод суммы четных положительных элементов.
  9. Вывод произведения нечетных элементов.
  10. Вывод массива.
  11. Вычисление остатка от деления суммы четных положительных элементов на произведение нечетных элементов.
  12. Ввод нового значения количества элементов массива или завершения работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.643 из 5
Похожие ответы