Технический форум

Технический форум (http://www.tehnari.ru/)
-   C/C++/С# (http://www.tehnari.ru/f42/)
-   -   Помогите найти ошибку в коде (http://www.tehnari.ru/f42/t256717/)

alex99lol 22.11.2017 01:08

Помогите найти ошибку в коде
 
Код:

#include <iostream>
#include <cstdlib>
using namespace std;
int arr[10], int_Ar[10];
int main()

{  int s, i, j;
s=0;
for ( i=0; i<=9; i++)
    {arr[i]=rand()%10;
for ( j=0; j<=9; j++)
        {int_Ar[j]=rand()%10;
        if( arr[i]=int_Ar[j])
        {s++;}}}

    cout<<endl;
    cout<< s;

    return 0;
}

задания сравнения елементов двух масивов и нахождения количества совпадений

Vladimir_S 22.11.2017 10:55

Ничего в СИ не понимаю, языка не знаю, но ошибки вижу.
Например, в операторе "if" вместо логического условия равенства "==" стоит оператор присваивания "=".

Olej 15.01.2018 16:03

Цитата:

Сообщение от alex99lol (Сообщение 2534727)
Помогите найти ошибку в коде

1. Вы пытаетесь сравнивать случайное значение [0...10) с другим случайным значением [0...10) - вероятность (частота) такого совпадения, хотя бы одного, очень малая - 1/10... так что вряд ли вы наловите много совпадений - сама формулировка задачи неудачная.

2. Про if(...) вам уже подсказали:
Код:

if( arr[i]=int_Ar[j])
Это самая обычная и частая ошибка.

3. Не хотите связываться с if(...) и наловить подобных ошибок, можете переписать всё сравнение с подсчётом - просто так:
Код:

s += arr[i] == int_Ar[j] ? 1 : 0;
И будет вам счастье.

4. Поменяйте местами вот эти строки, потому что это тоже бессмыслица записана:
Цитата:

Сообщение от alex99lol (Сообщение 2534727)
Код:

    cout<<endl;
    cout<< s;


Так что ошибок тут достаточно... tehno015


Часовой пояс GMT +4, время: 11:54.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.