0 / 0 / 0
Регистрация: 17.01.2022
Сообщений: 7
1

Почему присваивание не работает

18.01.2022, 10:29. Показов 599. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Писал функцию для посимвольного сравнения строк, решил проверить счетчик, а он, после присваивания ему нуля, почему то становится огромным числом. В чём моя ошибка?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int streql(char *str1, char *str2)
{
    int k,i;
    k=0;
    for (i=0; i<6; i++)
    {
        if(str1[i]==str2[i])
        {
            k++;
        }
    }
    printf("%d",&k);
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2022, 10:29
Ответы с готовыми решениями:

Почему работает присваивание
Пример из книги. Немогу понять, почему работает присваивание в main.cpp, ведь оператор = не...

Почему не работает двойное присваивание?
Всем привет. Не могу понять, почему не работает двойное присваивание в строке 28. Код: ...

Присваивание операторов (хз почему не робит)
Собственно завело в ступор то, что программа не работает. Просто реально теперь у меня ступор...

Как работает присваивание
#include &lt;iostream&gt; using namespace std; class A{ int a,b; A &amp;operator=(const A...

5
Вездепух
Эксперт CЭксперт С++
11691 / 6370 / 1723
Регистрация: 18.10.2014
Сообщений: 16,052
18.01.2022, 10:31 2
Цитата Сообщение от Maryakun Посмотреть сообщение
а он, после присваивания ему нуля, почему то становится огромным числом.
Почему вы так решили? В чем это выражается?

Цитата Сообщение от Maryakun Посмотреть сообщение
printf("%d",&k);
&k? Что здесь делает &?
0
0 / 0 / 0
Регистрация: 17.01.2022
Сообщений: 7
18.01.2022, 10:58  [ТС] 3
Я выводил отдельно значение k сразу после присваивания, там было не 0. А & в упор не видел, если честно.

Добавлено через 19 минут
TheCalligrapher, тогда другой вопрос появляется. вопрос в том, что когда программа идет по строке, даже если она пустая, то сравнивая пустоту и пустоту, функция всё равно умудряется находить неодинаковые ячейки, как?
0
4063 / 3317 / 924
Регистрация: 25.03.2012
Сообщений: 12,483
Записей в блоге: 1
18.01.2022, 13:37 4
Цитата Сообщение от Maryakun Посмотреть сообщение
TheCalligrapher, тогда другой вопрос появляется. вопрос в том, что когда программа идет по строке, даже если она пустая, то сравнивая пустоту и пустоту, функция всё равно умудряется находить неодинаковые ячейки, как?
В чём это выражается? Что выводит
C++
1
2
3
4
int main() {
   streql("","");
   return 0;
}
Исправь int streql(char *str1, char *str2)int streql(const char *str1, const char *str2)
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
18.01.2022, 13:53 5
Цитата Сообщение от Maryakun Посмотреть сообщение
printf("%d",&k);
Печатает адрес переменной k
Это тоже число, то есть ошибки не возникает, но надеюсь, ты понимаешь, что адрес и переменная вещи разные.

Добавлено через 4 минуты
Это вообще весьма распространенная ошибка. Симметрии printf - scanf нет. scanf-у нужен адрес. А printf обходится значением
На досуге подумай - почему
0
Вездепух
Эксперт CЭксперт С++
11691 / 6370 / 1723
Регистрация: 18.10.2014
Сообщений: 16,052
18.01.2022, 23:18 6
Цитата Сообщение от Maryakun Посмотреть сообщение
тогда другой вопрос появляется. вопрос в том, что когда программа идет по строке, даже если она пустая, то сравнивая пустоту и пустоту, функция всё равно умудряется находить неодинаковые ячейки, как?
Что такое "пустота" в данном случае? В С++ массиве не может быть "пустоты".

И при чем здесь строки вообще? Ваш код ничего не знает ни о каких строках. Ваш код сравнивает два целочисленных массива из 6 элементов. Никаких "строк" тут нигде и близко не видно.
0
18.01.2022, 23:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2022, 23:18
Помогаю со студенческими работами здесь

Не работает поэлементное присваивание элементов массива
Доброго времени суток. Помогаю знакомому с ЛР. Нужно реализовать класс Vector на коленке, с тремя...

Нужно ввести дату в формате dd.mm.yyyy - не работает присваивание
Создал свой класс date. Принцип работы прост. Просто нужно ввести дату в формате dd.mm.yyyy...

Не могу понять почему не происходит присваивание
Что не так почему не происходит присваивание для a и b? int max, min, a,...

Не работает присваивание
Пример из Шилдта выдает ошибку, что, мол, левая часть должна быть переменной, индексатором или...

Присваивание высоты не работает
Всем привет. быстро к делу. скрипт короткий: $('#announce img').load(function(){//Скрипт...

Присваивание значения переменной внутри try except не работает
Задача:проверить ввел пользователь число(целочисленное или дробное) или нет Мой код: ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru