Определить произведение элементов массива, индексы которых находятся в интервале - 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, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д