Цикл For в C++

  • Автор темы Vadik(R)
  • Дата начала
V

Vadik(R)

Почему такой код работает:
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
Вопрос обсуждал уже , но как-то не очень помогли ( ).
 
G

grigsoft

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

ChexoV

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

Setry

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

Vadik(R)

Вот cin, cout я умел юзать, а с scanf - нет, но научиться было бы полезно :)
А так я с проблемой уже разобрался
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!