powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / где тут может быть ошибка или недочет. помогите разобраться
9 сообщений из 9, страница 1 из 1
где тут может быть ошибка или недочет. помогите разобраться
    #39972715
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите разобраться где тут может быть ошибка или недочет. Это Керриган и Пайк "практика программирования"
в одном из упражнений требуют найти ошибку или недочет.
Я тут ничего плохого в коде не чувствую.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
int read(int* ip) {
    scanf("%d", ip);
    return *ip;
}
.........
insert(&graph[vert], read(&val), read(&ch));

}



что делает функция insert умалчивается . поэтому я вместо неё написал свою функцию div. Полный код я привожу :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int read(int* ip) {
    scanf("%d", ip);
    return *ip;
}
float div(int a, int b) {
    printf("%d %d ", a,b);
    return  a/b;
}

int main()
{ 
    int d=0;
    int d1 = 0;
    int gg = div(read(&d), read(&d1));
    return 0;
}



все выполняется корректно. Не пойму что надо сделать чтобы столкнуть в пропасть первый исходник ?
...
Рейтинг: 0 / 0
где тут может быть ошибка или недочет. помогите разобраться
    #39972723
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
read(NULL);
...
Рейтинг: 0 / 0
где тут может быть ошибка или недочет. помогите разобраться
    #39972724
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,

Последовательность вызова функций read() не определена:

Код: plaintext
1.
insert(&graph[vert], read(&val), read(&ch));
...
Рейтинг: 0 / 0
где тут может быть ошибка или недочет. помогите разобраться
    #39972726
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrum,
справедливо заметил. но не думаю , что это вариант подразумевался. всё же в функции insert фигурируют реальные переменные.
...
Рейтинг: 0 / 0
где тут может быть ошибка или недочет. помогите разобраться
    #39972738
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
andron81,

Последовательность вызова функций read() не определена:

Код: plaintext
1.
insert(&graph[vert], read(&val), read(&ch));


да, думал над этим. я кстати для этого и сделал функцию деления в надежде вызвать конфликт деления на 0. но не удалось, поэтому не понимаю опасности.
какая разница для функции insert(div) какой read выполнится первым. Если она , конечно, не начнет выполнение без отработки какого-то из read, что думаю невозмжно.
не мог бы ты прокомментировать ?
...
Рейтинг: 0 / 0
где тут может быть ошибка или недочет. помогите разобраться
    #39972746
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81
petrav
andron81,

Последовательность вызова функций read() не определена:

Код: plaintext
1.
insert(&graph[vert], read(&val), read(&ch));


да, думал над этим. я кстати для этого и сделал функцию деления в надежде вызвать конфликт деления на 0. но не удалось, поэтому не понимаю опасности.
какая разница для функции insert(div) какой read выполнится первым. Если она , конечно, не начнет выполнение без отработки какого-то из read, что думаю невозмжно.
не мог бы ты прокомментировать ?

Что ж тут непонятного? Ты думаешь, что последовательность будет такая:

Код: plaintext
1.
2.
3.
int a = read(&val);
int b = read(&ch);
insert(&graph[vert], a, b);


Поменял компилятор, переключился с Debug на Release, или оптимизатор как-то по другому рассудил. И получилось так:

Код: plaintext
1.
2.
3.
int b = read(&ch);
int a = read(&val);
insert(&graph[vert], a, b);


Ведь эти числа у тебя вводит пользователь. Как же он их введёт если ты не можешь ему сообщить что вводить сначала, а что потом?
...
Рейтинг: 0 / 0
где тут может быть ошибка или недочет. помогите разобраться
    #39972748
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
удалил
...
Рейтинг: 0 / 0
где тут может быть ошибка или недочет. помогите разобраться
    #39972751
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav

Ведь эти числа у тебя вводит пользователь. Как же он их введёт если ты не можешь ему сообщить что вводить сначала, а что потом?


точняк ! можно закрывать тему
...
Рейтинг: 0 / 0
где тут может быть ошибка или недочет. помогите разобраться
    #39972928
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Закрыто
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / где тут может быть ошибка или недочет. помогите разобраться
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]