Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
54 / 42 / 11
Регистрация: 27.10.2018
Сообщений: 437
1

Нужно найти ошибку

12.03.2019, 21:07. Просмотров 871. Ответов 5
Метки нет (Все метки)

Пытаюсь создать прогу которая должна проверять меняется ли знак у чисел в массиве ,подозреваю я где-то ошибся и передача массивов в функции идет некорректно ,но мне не хватает знаний пофикить это .Мои подозрения строятся на том что при компиляции идет ошибка в 5 и 11 строках"arr1[i]/arr2 is undefined",помогите пожалуйста,спасибо.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
bool func(int* arr){
    for (int i = 0; i < 5; i++) {
            if (arr1[i] * arr1[i + 1] > 0){return 0;}
        return 1;
    }
};
bool func(double * arr) {
    for (int i = 0; i < 5; i++) {
            if (arr2[i] * arr2[i + 1] > 0) { return 0; }
        return 1;
    }
};
void main() {
    int arr1[5] = { 1, 2, 3, 4, 5 };
    double arr2[5] = { 1.1, -2.2, 3.3, -4.4, 5.5 };
    int int_res = func(arr1);
    double double_res = func(arr2);
    (int_res=1)?cout<<"ints sign changes in right way"<<endl:cout<<"ints sign doesn't change in right way"<<endl;
    (double_res=1)?cout<<"doubles sign changes in right way"<<endl:cout<<"doubles sign doesnt change in right way"<<endl;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2019, 21:07
Ответы с готовыми решениями:

Нужно найти ошибку
#include &lt;iostream.h&gt; #include &lt;math.h&gt; double a,b,c,d,v; a=1000; b=1; v=a+b;...

нужно найти ошибку.
#include &lt;stdio.h&gt; void quickSortR(int* a, long N) { long i = 0, j = N; int...

Нужно найти ошибку
Вот код программы: #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include...

нужно найти ошибку
надо создать динамический массив, в который записываются элементы массива х, которые строго больше...

5
1 / 1 / 0
Регистрация: 12.03.2019
Сообщений: 2
12.03.2019, 21:22 2
У тебя arr1 не глобальный массив, в 5 строке не arr1, а arr

Добавлено через 1 минуту
Так же и с arr2. Плюс у тебя функция main должная возвращать число 0, она никак не может быть void
0
54 / 42 / 11
Регистрация: 27.10.2018
Сообщений: 437
12.03.2019, 21:22  [ТС] 3
Цитата Сообщение от fegelene11 Посмотреть сообщение
У тебя arr1 не глобальный массив, в 5 строке не arr1, а arr
спасибо друг
0
Модератор
Эксперт С++
10150 / 8499 / 5165
Регистрация: 18.12.2011
Сообщений: 22,736
12.03.2019, 21:25 4
Лучший ответ Сообщение было отмечено plzvtl как решение

Решение

Если надо проверить чередования знаков, то так:
C++
1
2
3
4
5
6
7
8
9
bool func(int* arr)
{
    for (int i = 0; i < 4; i++)  // 4 а не 5
   {
            if (arr[i] * arr[i + 1] > 0) // arr а не arr1
               return false; //bool  как-никак 
    }
    return true; // ВНЕ цикла
}
1
54 / 42 / 11
Регистрация: 27.10.2018
Сообщений: 437
12.03.2019, 22:07  [ТС] 5
Цитата Сообщение от zss Посмотреть сообщение
if (arr[i] * arr[i + 1] > 0) // arr а не arr1
как оно так работает? п с , держу вкурсе ,все исправил, заработало как надо , спасибо за помощь.
0
5245 / 3564 / 2114
Регистрация: 18.12.2017
Сообщений: 11,333
12.03.2019, 22:19 6
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 <iostream>
using namespace std;
 
template < typename T >
bool F (T* arr)
{
    for (int i = 0; i < 4; i++) 
        {
        if (arr[i]*arr[i+1]>0) return false;
        }        
    return true;    
}
 
int main() 
{
    int arr1[5] = { 1, 2, 3, 4, 5 };
    double arr2[5] = { 1.1, -2.2, 3.3, -4.4, 5.5 };
    
    cout << "Matrix arr1:\n";
    if (F(arr1)) cout << "YES, sign changes every time\n";
    else cout << "NO\n";
    
    cout << "Matrix arr2:\n";
    if (F(arr2)) cout << "YES, sign changes every time\n";
    else cout << "NO\n";
system("pause");
return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2019, 22:19

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Нужно найти ошибку
Мой код #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; double ugol(int a, int n,...

Нужно найти ошибку
10 строка: #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;cstdlib&gt; const double PI=22/7; ...

Нужно найти ошибку!!
Код программы прилагается помогите найти ошибку , Заранее очень благодарен!!

Нужно найти ошибку
Помогите найти ошибку, не запускается( Тексты программ переписывайте в сообщение!

Нужно найти ошибку {
#include &quot;pch.h&quot; #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { int ...

Задачка.Нужно найти ошибку
Изначальное условие задачи: Составить программу поисков всех чисел палиндромов до n(n вводится с...


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

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

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