|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Помогите найти ошибку |
|
C/C++ - [решено] Помогите найти ошибку
|
Пользователь Сообщения: 84 |
Вот код
#include <iostream> #include <string> using namespace std; int main() { string com; int matrix[9][9]={0}; int x=9; int y=9; int v=9; int ix, iy, iv; do { cin>>com; if(com=="in"){cin>>ix>>iy>>iv; matrix[ix][iy]=in(ix, iy, iv, x, y, v);}; if(com=="out"){cin>>ix>>iy; if(out(ix, iy, x, y)){cout<<matrix[ix][iy]<<endl<<"Sucesful"<<endl;};} }while(true); } int in(int ix, int iy, int iv, int x, int y, int v) { if(!((ix<0)||(ix>x)||(iy<0)||(iy>y))){ if(((iv<0)||(iv>9))){cout<<"So big or so smal value!"<<endl;} else{cout<<"Sucesful"<<endl; return iv;};} else{cout<<"End of matrix!"<<endl;}; } bool out(int ix, int iy, int x, int y) { if(!((ix<0)||(ix>x)||(iy<0)||(iy>y))){return true;} else{cout<<"End of matrix!"<<endl;}; } |
|
Отправлено: 16:42, 15-01-2013 |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать Ну код и что? Компилируется нормально, выводит ноль в консоль. Что искать то?
|
Отправлено: 17:02, 15-01-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 84
|
Профиль | Отправить PM | Цитировать Вот что говорит дядюшка компилятор
1>c:\documents and settings\loner\мои документы\visual studio 2010\projects\m3\m3\m3.cpp(15): error C3861: in: идентификатор не найден 1>c:\documents and settings\loner\мои документы\visual studio 2010\projects\m3\m3\m3.cpp(16): error C3861: out: идентификатор не найден Всё я уже сам нашол ошибку Я не добавил прототипоа функций |
------- Отправлено: 17:15, 15-01-2013 | #3 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Несколько замечаний по технике программирования. Есть такое понятие как "магическая цифра", у вас размер двухмерного массива равен 9, переменным y, x, v присвоено число девять. Потом труднее будет понять что является размером, а что значением. Всегда старайтесь использовать переменные.
Теперь такой момент, в условиях у вас слишком много скобок, это не ошибка, но они избыточные, достаточно написать И наконец конструкция ввода\вывода Цитата COM-BAT:
... const int row = 9; const int column = 9; int matrix[row][column] = {0}; for(int i = 0; i < row; i++){ for(int j = 0; j < column; j++){ cout << "Matix[" << i << "][" << j << "] = "; // Для красоты ввода cin >> matrix[i][j]; } } ... |
|
------- Отправлено: 18:46, 15-01-2013 | #4 |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать На будущее, когда просите найти ошибку, сообщайте все, что вам о ней известно.
Цитата COM-BAT:
test.cpp: In function ‘bool out(int, int, int, int)’: test.cpp:17: warning: control reaches end of non-void function test.cpp: In function ‘int in(int, int, int, int, int, int)’: test.cpp:11: warning: control reaches end of non-void function Цитата COM-BAT:
Тут у вас бесконечный цикл. Добавьте возможность его завершения. Слов smal и sucesful в английском языке нет, есть small и successful. А фраза "So big or so small value!" переводится "Такое большое или такое маленькое значение", как минимум, нужно использовать too (слишком) вместо so (итак, такой). Если собираетесь профессионально заниматья программированием, то подучите английский, он очень пригодится. Цитата Drongo:
|
||||
Отправлено: 09:57, 16-01-2013 | #5 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Цитата torauma:
|
|
------- Отправлено: 14:33, 16-01-2013 | #6 |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать Drongo, я и не утверждаю, что они здесь необходимы, просто при их наличии не нужно даже задумываться, что имеет больший приоритет сравнение или "или". Конечно, не трудно догадаться у чего приоритет выше, но ситуации бывают и запутанее. Ну и читать условие когда в нем сравнения выделены скобками легче (по крайней мере мне). Хотя в вашей записи тоже все читается вполне легко, так как сравнения отделены пробелами, но вот если отделить еще и переменные от заков сравнения (при более длинных именах переменных это имеет смысл), то читать станет сложнее. Вобщем, тут спор скорее о стиле оформления кода, а в этом вопросе каждый волен делать как ему удобнее, в разумных пределах конечно.
|
Отправлено: 15:17, 16-01-2013 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Помогите найти ошибку | кэп | Программирование и базы данных | 3 | 06-11-2012 09:16 | |
C/C++ - Помогите найти ошибку | pashazt | Программирование и базы данных | 1 | 05-11-2012 23:40 | |
C/C++ - Помогите найти ошибку | Bokslaitner | Программирование и базы данных | 3 | 01-11-2012 22:03 | |
помогите найти ошибку | igor7 | Программирование в *nix | 1 | 07-02-2011 09:55 | |
C/C++ - Помогите найти ошибку | KEKS-KEKS | Программирование и базы данных | 9 | 01-11-2007 20:30 |
|