В массиве A[m] каждый второй элемент заменить произведением двух предыдущих - C (СИ)

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

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

Помогите разобраться что я делаю не так. Я пока не делаю запись массива в файл, разбираюсь как сделать само задание.

Задание: В массиве A[m] каждый второй элемент заменить произведением двух предыдущих. Дополнительный массив не использовать. Вывести на экран и в файл исходный массив А, полученный массив А.

#include "stdafx.h"
#include<iostream>
#include <conio.h>
using namespace std;
const int m=9;
int func (int arr[m])
{
    for(int i=3; i<m; i+2)
        arr[i]=(arr[i-2]*arr[i-1]);
    return 0;
};
int main()
{
    setlocale (LC_ALL, "Russian");
    int A[m];
    printf("Введите массив из %d целых чисел: \n", m+1);
    for(int i=0; i<m; i++)
        scanf("%d ",&A[i]);
    printf("\n Исходный массив: ");
    for (int i=0;i<m;i++)
        printf("%d ",A[i]);
    printf("\n Полученный массив: ");
    func(A);
    for(int i=0;i<m; i++)
        printf("%d ",A[i]);
    getch();
    return 0;
}

Решение задачи: «В массиве A[m] каждый второй элемент заменить произведением двух предыдущих»

textual
Листинг программы
/*В массиве A[m] каждый второй элемент заменить произведением двух предыдущих.
Дополнительный массив не использовать. Вывести на экран и в файл исходный массив А, полученный массив А.
*/
#include "stdafx.h"
#include<iostream>
#include <conio.h>
using namespace std;
const int m=9;
void func (int arr[m])
{
    for(int i=3; i<m; i=i+2)
        arr[i]=(arr[i-2]*arr[i-1]);
}
void main()
{
    setlocale (LC_ALL, "Russian");
    int A[m];
    FILE*file;
    printf("Введите массив из %d целых чисел: \n", m+1);
    for(int i=0; i<m; i++)
        scanf("%d ",&A[i]);
    printf("\n Исходный массив: ");
    for(int i=0; i<m; i++)
        printf("%d, ",A[i]);
    file=fopen("text.txt","w");
    fprintf(file,"Исходный массив: ");
    for (int i=0;i<m;i++)
        fprintf(file,"%d, ",A[i]);
    fprintf(file,"\n");
    fclose(file);
    printf("\n Полученный массив: ");
    func(A);
    for(int i=0; i<m; i++)
        printf("%d, ",A[i]);    
    file=fopen("text.txt","a");
    fprintf(file,"Полученный массив: ");
    for(int i=0;i<m;i++)
        fprintf(file,"%d, ",A[i]);
    fclose(file);
    getch();
}

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

  1. В функции main объявляется массив A размером m=9.
  2. Пользователю предлагается ввести массив A с помощью функции scanf.
  3. С помощью функции printf выводится исходный массив A на экран.
  4. Файл text.txt открывается в режиме записи с помощью функции fopen.
  5. С помощью функции fprintf в файл text.txt записывается исходный массив A.
  6. В функции func происходит замена каждого второго элемента массива A произведением двух предыдущих с помощью цикла for.
  7. В функции main после вызова функции func выводится полученный массив A на экран.
  8. Файл text.txt открывается в режиме добавления с помощью функции fopen.
  9. С помощью функции fprintf в файл text.txt записывается полученный массив A.
  10. Функция getch используется для приостановки выполнения программы до нажатия клавиши.
  11. В конце программы не забываем закрыть файл с помощью функции fclose.

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


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

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

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