Определить произведение элементов массива, индексы которых находятся в интервале - 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;
- }
Объяснение кода листинга программы
- Включаем файл с библиотекой стандартного ввода/вывода
- Функция proizv(Q, q, K, T) принимает массив Q, длину массива q, и два индекса K и T.
- Внутри функции создаем переменную p равной 1.
- Используем цикл for для прохода по элементам массива Q от 0 до q-1.
- Внутри цикла проверяем условие i < T && i > K и если оно истинно, то умножаем p на Q[i].
- Возвращаем значение переменной p по окончании цикла.
- В функции main() открываем файл doc.txt для чтения и если он не найден, выводим сообщение об ошибке и возвращаем 1.
- Используем цикл for для прохода по элементам массива Q от 0 до q-1 и считываем значения в файле doc.txt в элементы массива Q.
- Если при считывании значения возникла ошибка, выводим сообщение об ошибке и возвращаем 1.
- Открываем файл konec.txt для записи.
- Вызываем функцию proizv(Q, q, 1, 8) и записываем результат в файл konec.txt.
- Закрываем файлы doc.txt и konec.txt.
- Возвращаем 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д