Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
ve1c0m
1 / 1 / 1
Регистрация: 30.10.2013
Сообщений: 17
1

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

31.10.2013, 00:01. Просмотров 706. Ответов 2
Метки нет (Все метки)

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#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;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2013, 00:01
Ответы с готовыми решениями:

В массиве C (m) каждый третий элемент заменить полусумму двух предыдущих
Реализовать программу вычисления суммы элементов матрицы: В массиве C (m) каждый третий элемент...

В массиве C (m) каждый третий элемент заменить на полусумму двух предыдущих элементов
Что не так? #include&lt;conio.h&gt; #include&lt;windows.h&gt; #include&lt;stdlib.h&gt; #include&lt;stdio.h&gt; int...

В массиве A (n) каждый элемент, кроме первого заменить суммой всех предыдущих элементов
В массиве A (n) каждый элемент, кроме первого заменить суммой всех предыдущих элементов. Как...

Сформировать массив, каждый последующий элемент которого равен сумме всех предыдущих
Даны целые числа N (&gt; 2), A и B. Сформировать и вывести целочисленный массив размера N, первый...

Последний элемент каждой строки заменить на сумму предыдущих
Последний элемент каждой строки заменить на сумму предыдущих Не могу понять, как это сделать:( ...

2
ve1c0m
1 / 1 / 1
Регистрация: 30.10.2013
Сообщений: 17
31.10.2013, 21:47  [ТС] 2
Разобрался в задаче. Ошибка оказалась в условии цикла, который находится в функции. Дописал полностью код с записью в файл. Может понадобится кому-нибудь.
Есть нюанс который не могу исправить, когда ввожу элементы массива, то ввожу 10 элементов, а выводится и записывается в файл только 9, как исправить ???
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*В массиве 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();
}
0
Миниатюры
В массиве A[m] каждый второй элемент заменить произведением двух предыдущих   В массиве A[m] каждый второй элемент заменить произведением двух предыдущих  
Ilyaa
20 / 20 / 3
Регистрация: 29.04.2012
Сообщений: 214
01.11.2013, 00:23 3
ve1c0m, если вы включите отладчик и посмотрите что хранится в массиве А и сколько в нем элементов, то увидите все. последнюю ячейку массив хранит для обозначения конца строки.
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2013, 00:23

В массиве каждый третий элемент заменить полусуммой двух предыдущих (с использованием указателей)
Заранее большое спасибо.(написать программу с использованием указателей)

массиве А(n) каждый элемент, заменить суммой всех предыдущих элементов первый заменить на 0
помогите пожалуйста! Например, в массиве 5 чисел: 1,2,3,4,5 Они должны заменяться таким образом: A...

Заменить каждый третий элемент массива на сумму двух предыдущих
В Массиве С(m) заменить каждый третий элемент на сумму двух предыдущих.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.