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

Возведение числа в целую степень - C++

Восстановить пароль Регистрация
 
Stebalso
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 2
27.02.2014, 14:00     Возведение числа в целую степень #1
Даны числа а1 , а2 , а3 т.д.... вычислить а1^1+a2^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
#include<stdio.h>
#include<math.h>
const int N=5;
int A[N];
int i,s,m;
int main ()
{ 
for(i=1;i<N;i++);
{
    printf("Vvedite A[i]-\n");
    scanf("%d", &A[i]);
    
}
int FUNC(A[N]);
    
    {
       A[i]=A[i]^i;
    }
s=0;
for(i=1;i<N;i++)
{
m=FUNC(A[i]);
s=s+m;
}
printf("%d", s);
}
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
27.02.2014, 14:20     Возведение числа в целую степень #2
Цитата Сообщение от Stebalso Посмотреть сообщение
Где ошибка ?
Если основная, то функцию нельзя объявлять внутри другой функции. Использовать можно, но вот объявлять нельзя.
Anton_Kretov
 Аватар для Anton_Kretov
89 / 51 / 7
Регистрация: 26.06.2013
Сообщений: 179
27.02.2014, 15:26     Возведение числа в целую степень #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
const int NUMBER_OF_ELEMENTS = 10;
 
int setMultiple(int *numbersArray);
 
int main()
{
    int numbersArray[NUMBER_OF_ELEMENTS];
    int *intP = numbersArray;
    for(int i = 0; i < NUMBER_OF_ELEMENTS; i++) {
        cin >> numbersArray[i];
    }
 
    cout << "\n" << "Sum is: " << setMultiple(intP);
 
    return 0;
}
 
int setMultiple(int *numbersArray) {
    int sum = 0;
    for(int i = 0; i < NUMBER_OF_ELEMENTS; i++) {
        sum += pow(numbersArray[i], i + 1);
    }
    return sum;
}
Добавлено через 7 минут
Ваш код ужасен. Простите, если оскорбил. Прежде всего, вы не поняли, что такое функция. main() - это тоже функция, и вы не можете объявлять функцию внутри другой. Вы должны отдельно вынести прототип функции и ее объявление.
Далее, лучше перепишите строку 22 и 23 у вас. Ведь их можно в одну скомпоновать без промежуточной переменной, например, вот так:
C++
1
s += FUNC(A[i]);
И по поводу строки 17...
У вас программа неправильно будет работать. Используйте функцию pow, как у меня.
Напоследок, я вам советую функцию вычисления этой суммы сделать полной, т.е. вот этот код:
C++
1
2
3
4
5
6
7
8
9
10
11
int FUNC(A[N]);
    
    {
       A[i]=A[i]^i;
    }
s=0;
for(i=1;i<N;i++)
{
m=FUNC(A[i]);
s=s+m;
}
Привести к такому:
C++
1
2
3
4
5
6
7
int setMultiple(int *numbersArray) {
    int sum = 0;
    for(int i = 0; i < NUMBER_OF_ELEMENTS; i++) {
        sum += pow(numbersArray[i], i + 1);
    }
    return sum;
}
Stebalso
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 2
01.03.2014, 21:05  [ТС]     Возведение числа в целую степень #4
Anton_Kretov, Спс )
Yandex
Объявления
01.03.2014, 21:05     Возведение числа в целую степень
Ответ Создать тему
Опции темы

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