Форум программистов, компьютерный форум CyberForum.ru

Одномерный массив. Вычислить сумму полож. эл-в, раполож. до максимального и заменить все отрицат. эл-ты на их квадраты - C++

Восстановить пароль Регистрация
 
Lotus34
5 / 6 / 1
Регистрация: 26.10.2012
Сообщений: 124
27.11.2012, 15:00     Одномерный массив. Вычислить сумму полож. эл-в, раполож. до максимального и заменить все отрицат. эл-ты на их квадраты #1
Посмотрите код, первая работа с массивами.
Задача- В одном. массиве, сост. из н веществен. чисел, вычислить сумму полож. эл-в, раполож. до максимального и заменить все отрицат. эл-ты на их квадраты.
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
#include <iostream>
using namespace std;
#include <math.h>
#include <conio.h>
#include <windows.h>  
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    const int n=10;
    int mas[i],imax=0,Sum,i;
    for(i=0; i<n; i++)
    {
        cin>> mas[i];
    cout<<"Введите элемент массива";    // Вводим массив
    }
    for(i=1; i<n; i++)
    {
        if(mas[i]>mas[imax])            // Находим максимальный элемент
            imax=i;
    }
    Sum=0;
    for(i=0;i<n; i++)
    {   
        if(i<imax && mas[i]>0)         // Находим сумму всех положительных элементов массива, 
            Sum+=i;                    // расположенных до максимального 
    }
    for(i=0; i<n; i++)
    {
        if(mas[i]<0)                    // Заменяем все отрицательный элементы массива их квадратами 
            mas[i]=pow(mas[i],2);
    }
    cout<<"Сумма положительных эл-в , раполож. до максимального="<<Sum;
    for(i=0; i<n;i++)
        cout<<mas[i];
    getch;
        return 0;
}

Ошибки:
1>------ Построение начато: проект: Лаба 3, Конфигурация: Debug Win32 ------
1>Компиляция...
1>1.cpp
1>d:\учеба\осн.программирования\лаба 3\лаба 3\1.cpp(11) : error C2065: i: необъявленный идентификатор
1>d:\учеба\осн.программирования\лаба 3\лаба 3\1.cpp(31) : error C2668: pow: неоднозначный вызов перегруженной функции
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(575): может быть 'long double pow(long double,int)'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(527): или 'float pow(float,int)'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(489): или 'double pow(double,int)'
1> при попытке сопоставить список аргументов '(int, int)'
1>d:\учеба\осн.программирования\лаба 3\лаба 3\1.cpp(36) : warning C4551: в вызове функции отсутствует список аргументов
1>Журнал построения был сохранен в "file://d:\Учеба\Осн.Программирования\Лаба 3\Лаба 3\Debug\BuildLog.htm"
1>Лаба 3 - ошибок 2, предупреждений 1
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2012, 15:00     Одномерный массив. Вычислить сумму полож. эл-в, раполож. до максимального и заменить все отрицат. эл-ты на их квадраты
Посмотрите здесь:

Дано одномерный массив. Заменить все отрицательные элементы их модулями. C++
Одномерный массив. Заменить все элементы с отрицательным значением на значение минимального не равного 0 положительного элемента. C++
C++ Все четные элементы заменить на их квадраты, а нечетные удвоить (переделать с указателями)
Одномерный массив. Найти наименьший элемент, все нулевые элементы заменить значением этого элемента C++
C++ Одномерный массив из вещестенных чисел: вычислить сумму положительных элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
27.11.2012, 15:14     Одномерный массив. Вычислить сумму полож. эл-в, раполож. до максимального и заменить все отрицат. эл-ты на их квадраты #2
Ошибки подправил, по смыслу не смотрел
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
#include <iostream>
using namespace std;
#include <math.h>
#include <conio.h>
#include <windows.h>  
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    const int n=10;
    int mas[n],imax=0,Sum,i;
    for(i=0; i<n; i++)
    {
        cin>> mas[i];
    cout<<"Введите элемент массива";    // Вводим массив
    }
    for(i=1; i<n; i++)
    {
        if(mas[i]>mas[imax])            // Находим максимальный элемент
            imax=i;
    }
    Sum=0;
    for(i=0;i<n; i++)
    {   
        if(i<imax && mas[i]>0)         // Находим сумму всех положительных элементов массива, 
            Sum+=i;                    // расположенных до максимального 
    }
    for(i=0; i<n; i++)
    {
        if(mas[i]<0)                    // Заменяем все отрицательный элементы массива их квадратами 
            mas[i]=pow((double)mas[i],2);
    }
    cout<<"Сумма положительных эл-в , раполож. до максимального="<<Sum;
    for(i=0; i<n;i++)
        cout<<mas[i];
    getch();
        return 0;
}
Lotus34
5 / 6 / 1
Регистрация: 26.10.2012
Сообщений: 124
27.11.2012, 17:53  [ТС]     Одномерный массив. Вычислить сумму полож. эл-в, раполож. до максимального и заменить все отрицат. эл-ты на их квадраты #3
Спасибо.Запускает. Но пишет ошибочную сумму и новый массив выводит как старый а не с квадратами чисел(

Добавлено через 2 часа 29 минут
Посоветуйте как исправить!
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
27.11.2012, 18:06     Одномерный массив. Вычислить сумму полож. эл-в, раполож. до максимального и заменить все отрицат. эл-ты на их квадраты #4
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
#include <iostream> 
#include <cmath>
 
int main() 
{ 
    const int n = 10; 
    double array[n] = { 12.1, 45.4, -34.2, 6.2, -7, 12.6, -7.4, -8.8, -6, 121.1 };  
    double max, sum = 0;  
    int index = 0, i;
    
    max = array[0];  
 
    for ( i = 1; i < n; ++i) 
        if(array[i] > max) 
        { 
            max = array[i]; 
            index = i; 
        }   
 
        for ( i = 0; i < index; ++i) 
            if(array[i] > 0) 
                sum += array[i]; 
        std::cout << "Sum is " << sum << std::endl; 
 
        for ( i = 0; i < n; ++i) 
        {
            if(array[i] < 0) 
                array[i] = pow(array[i], 2);  
            std::cout << array[i] << " "; 
        } 
        std::cout << std::endl;
}
Yandex
Объявления
27.11.2012, 18:06     Одномерный массив. Вычислить сумму полож. эл-в, раполож. до максимального и заменить все отрицат. эл-ты на их квадраты
Ответ Создать тему
Опции темы

Текущее время: 11:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru