Цикл For в C++

Vadik(R)

Well-known member
12.12.2007
469
0
#1
Почему такой код работает:
C++:
#include <iostream> 

using namespace std; 

int main() { 
//freopen("input.txt", "r", stdin); 
//freopen("output.txt", "w", stdout); 
int i, j, k, l, n, m, a[101][101], dp[101][101]; 
scanf("%d%d", &n, &m); 
memset(a, 0, sizeof a); 
memset(dp, 0, sizeof dp); 
for (i = 1; i <= n; i++) 
for (j = 1; j <= m; j++) 
scanf("%d", &a[i][j]); 

return 0; 
}
А если сделать переменные типа чар, то цикл рушится?
Пример входных данных:
2 3
5 0 9
1 2 7
Вопрос обсуждал уже здесь, но как-то не очень помогли (скрин).
 

grigsoft

Well-known member
15.11.2005
735
0
#2
scanf вообще пользуется славой функции, которую лучше избегать, в том числе и по этой причине. Указывая в ней %d, ты обещаешь что отдашь указатель на int, в который она запишет результат. А ты отдаешь указатаель на char, что приводит (но не обязательно!), к вылету.
 
C

ChexoV

#3
верно ответили что надо делать не %d ,а %c если char почитайте справку там написано какие спецификаторы использует scanf и printf
 
S

Setry

#4
а где тут вообще с++?
рекомендую ознакомиться с namespace std; а в частности с std::cout и std::cin
 

Vadik(R)

Well-known member
12.12.2007
469
0
#5
Вот cin, cout я умел юзать, а с scanf - нет, но научиться было бы полезно :)
А так я с проблемой уже разобрался