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

Хелп по проге - C++

Восстановить пароль Регистрация
 
sanchoflat
4 / 6 / 1
Регистрация: 05.11.2011
Сообщений: 97
01.06.2012, 13:29     Хелп по проге #1
Всем привет. делаю прогу и никак не могу понять, в чем дело. Есть массив А, присваиваю массиву Б элементы массива А в квадрате, потом нужно найти наибольший элемент в массиве Б и вывести номер. Если вдруг есть какаито функции готовые, можете плиз исправить, так как пока не понимаю что куда ставить)

C++
1
2
3
4
5
6
7
8
9
int kvarat(int arr[],int arr2[], int n)  // присваиваю массиву квадраты.
{
    for (int i=0; i<n; i++)
    {
      arr2[i] = pow(arr[i],2);
      cout<<arr2[i]<<endl;
    }
 
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int poisk (int arr2[],int n) // тут как раз ищу
{
    int nom = 0;
    int nomer=arr2[0];
    for ( int i=0; i<n; i++)
    {
      if (nomer<arr2[i+1])
      {
      nomer = arr2[i];
   
      nom = i;
      }
    }
    
    return nom;
}
Добавлено через 2 часа 14 минут
Народ, в чем может быть проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2012, 13:29     Хелп по проге
Посмотрите здесь:

C++ МАссив хелп
C++ Создание игры! Программисты ХЕЛП!!!
[C++] Хелп в чем ошибки C++
C++ многомерный массив.хелп
C++ Хелп с POST на C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
01.06.2012, 13:51     Хелп по проге #2
Цитата Сообщение от sanchoflat Посмотреть сообщение
Народ, в чем может быть проблема?
а действительно, в чем проблема? код рабочий
sanchoflat
4 / 6 / 1
Регистрация: 05.11.2011
Сообщений: 97
01.06.2012, 13:56  [ТС]     Хелп по проге #3
код то рабочий, но если к примеру я вбиваю n=3 и числа -4,-4,1, то номер элемента - 0.
вот код проги для теста, если интересно. и еще один вопрос. если я вбиваю элемент 100000 к примеру, то из за того что мои элементы интовые - при возведении в квадрат н выдает нехорошее число. Как исправить, менял значение моего массива на double - но ошибка почемуто
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <conio.h>
#include <cmath>
using namespace std;
 
 
int vvod(int arr[],int n)
{
 
    for (int i=0; i<n ;i++)
    {
        cout<<"M["<<i+1<<"] ";
        cin>>arr[i];
    }
}
 
int kvarat(int arr[],int arr2[], int n)
{
    for (int i=0; i<n; i++)
    {
      arr2[i] = pow(arr[i],2);
      cout<<arr2[i]<<endl;
    }
 
}
 
int formula (int arr2[],int n)
{
    int result=1;
    for( int i=0;i<n;i++)
    {
        result = result*arr2[i];
    }
    return result;
}
 
int poisk (int arr2[],int n)
{
    int nom = 0;
    int nomer=arr2[1];
    for ( int i=0; i<n; i++)
    {
      if (sqrt(nomer*nomer)<sqrt(arr2[i+1]*arr2[i+1]))
      {
      nomer = arr2[i];
 
      nom = i;
      }
    }
 
    return nom;
}
 
int main()
{
    int n,resultat, nom;
    int M[10];
 
    int N[10];
    do
    {
        cout<<"vvedite n: ";
        cin>>n;
    }
    while ( n<=0 || n>=10);
    vvod(M,n);
 
    kvarat(M,N,n);
 
    resultat=formula(N,n);
    cout<<"resultat: "<<resultat;
 
    nom=poisk(N,n);
    cout<<endl<<"nomer max elementa: "<<nom;
 
    getch();
}
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
01.06.2012, 13:58     Хелп по проге #4
отрицательное число в квадрате становится положительным, минус на минус будет плюс
sanchoflat
4 / 6 / 1
Регистрация: 05.11.2011
Сообщений: 97
01.06.2012, 14:01  [ТС]     Хелп по проге #5
так после того как оно стало положительным - я ищу максимальное среди квадратов. и нужно вывести номер этого элемента
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
01.06.2012, 14:03     Хелп по проге #6
массивы нумеруются с нуля, так что у первой 4 в квадрате номер 0
sanchoflat
4 / 6 / 1
Регистрация: 05.11.2011
Сообщений: 97
01.06.2012, 14:07  [ТС]     Хелп по проге #7
а блин, это вариант проги с попытками изменить чтото.
вот как было раньше и он тут уже чудил с отрицательными в начале
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
#include <conio.h>
 
using namespace std;
 
 
int vvod(int arr[],int n)
{
 
    for (int i=0; i<n ;i++)
    {
        cout<<"M["<<i+1<<"] ";
        cin>>arr[i];
    }
}
 
int kvarat(int arr[],int arr2[], int n)
{
    for (int i=0; i<n; i++)
    {
      arr2[i] = arr[i]*arr[i];
      cout<<arr2[i]<<endl;
    }
}
 
int formula (int arr2[],int n)
{
    int result=1;
    for( int i=0;i<n;i++)
    {
        result = result*arr2[i];
    }
    return result;
}
 
int poisk (int arr2[],int n)
{
    int nom = 0;
    int nomer=arr2[0];
    for ( int i=0; i<n; i++)
    {
      if ( nomer<arr2[i])
      {
      nomer = arr2[i];
      nom = i+1;
      }
    }
    return nom;
}
 
int main()
{
    int n, M[10],N[10],resultat, nom;
    do
    {
        cout<<"vvedite n: ";
        cin>>n;
    }
    while ( n<=0 || n>=10);
    vvod(M,n);
 
    kvarat(M,N,n);
 
    resultat=formula(N,n);
    cout<<"resultat: "<<resultat;
 
    nom=poisk(N,n);
    cout<<endl<<"nomer max elementa: "<<nom;
 
    getch();
}
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
01.06.2012, 14:15     Хелп по проге #8
вот тут
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
int nom = 0;
    int nomer=arr2[0];
    for ( int i=0; i<n; i++)
    {
      if ( nomer<arr2[i])
      {
      nomer = arr2[i];
      nom = i+1;
      }
    }
    return nom;
если первое число самое большое то nom остается равен 0
sanchoflat
4 / 6 / 1
Регистрация: 05.11.2011
Сообщений: 97
01.06.2012, 14:22  [ТС]     Хелп по проге #9
Ух спасибо, искал искал и не щаметил. исправил nom на 1, вроде теперь все работает. Однако вот тест прогоняю - ввожу 1000000, 3, 4 - выдает, что 4 самое большое
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
01.06.2012, 14:25     Хелп по проге #10
лучше перед return вставьте

C++ (Qt)
1
2
if(nom==0)
   nom=1;
а это 1000000, 3, 4, переполняется int, и первое число становится отрицательным
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2012, 14:28     Хелп по проге
Еще ссылки по теме:

И снова Хелп для двоечьника C++
C++ Нужен Хелп по потокам
C++ Лабораторная по программированию. ХЕЛП=(

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

Или воспользуйтесь поиском по форуму:
sanchoflat
4 / 6 / 1
Регистрация: 05.11.2011
Сообщений: 97
01.06.2012, 14:28  [ТС]     Хелп по проге #11
Спасибо работает, однако если вводить значения порядка свыше 5-6 то считает некорректно ( а препод любит всякие адовые цифры вводить для теста)
Yandex
Объявления
01.06.2012, 14:28     Хелп по проге
Ответ Создать тему
Опции темы

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