Определить произведение элементов массива, индексы которых находятся в интервале - C (СИ)

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

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

Здравствуйте!Написал программу,но она не работает,помогите,пожалуйста,исправить(ошибки на скрине). Cамо задание такое:"В массиве вещественных чисел Q=(q1,q2,…,qm) определить прозведения элементов ,индексы которых находятся в интервале К … Т (K< T < m)"
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
#include "locale.h"
float proizv(float Q[],int q,int K,int T);
{float p=1;
for(int i=0;i<q;i++)
{if(i<T && i>K) p=p*Q[i];}
return p;}
int _tmain(int argc, _TCHAR* argv[])
{
    const int q=13;
    float Q[q];
    FILE *p1 , *p2;
    p1=fopen("D:\doc.txt","w");
    for (int i=0;i<q;i++)
    {fscanf(p1,"%f\n",&Q[i]);}
    p2=fopen("D:\konec.txt","r");
    fprintf(p2,"%f",proizv(Q,q,1,8));
    fcloseall();
    return 0;
}

Решение задачи: «Определить произведение элементов массива, индексы которых находятся в интервале»

textual
Листинг программы
#include <stdio.h>
float proizv(float Q[], int q, int K, int T)
{
    float p = 1;
    int i;
    for(i = 0; i < q; i++){
        if(i < T && i > K)
        p = p * Q[i];
        }
    return p;
}
int main()
{
    int i;
    const int q = 13;
    float Q[q];
    FILE *p1 , *p2;
    p1 = fopen("doc.txt","r");
    if(p1 == NULL){
        printf("File not found\n");
        return 1;
    }
    for (i = 0;i < q; i++){
        if(1 != fscanf(p1,"%f\n",&Q[i])){
            printf("Not enough data in the file\n");
            return 1;
        }
    }
    p2 = fopen("konec.txt","w");
    fprintf(p2, "%f", proizv(Q, q, 1, 8));
    fclose(p1);
    fclose(p2);
    return 0;
}

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

  1. Включаем файл с библиотекой стандартного ввода/вывода
  2. Функция proizv(Q, q, K, T) принимает массив Q, длину массива q, и два индекса K и T.
  3. Внутри функции создаем переменную p равной 1.
  4. Используем цикл for для прохода по элементам массива Q от 0 до q-1.
  5. Внутри цикла проверяем условие i < T && i > K и если оно истинно, то умножаем p на Q[i].
  6. Возвращаем значение переменной p по окончании цикла.
  7. В функции main() открываем файл doc.txt для чтения и если он не найден, выводим сообщение об ошибке и возвращаем 1.
  8. Используем цикл for для прохода по элементам массива Q от 0 до q-1 и считываем значения в файле doc.txt в элементы массива Q.
  9. Если при считывании значения возникла ошибка, выводим сообщение об ошибке и возвращаем 1.
  10. Открываем файл konec.txt для записи.
  11. Вызываем функцию proizv(Q, q, 1, 8) и записываем результат в файл konec.txt.
  12. Закрываем файлы doc.txt и konec.txt.
  13. Возвращаем 0, что означает успешное выполнение программы.

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


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

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

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