Цикл For в C++

Тема в разделе "C и С++ FAQ", создана пользователем Vadik(R), 23 янв 2010.

  1. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Почему такой код работает:
    Код (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
    Вопрос обсуждал уже здесь, но как-то не очень помогли (скрин).
     
  2. grigsoft

    grigsoft Well-Known Member

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

    ChexoV Гость

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

    Setry Гость

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

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Вот cin, cout я умел юзать, а с scanf - нет, но научиться было бы полезно :)
    А так я с проблемой уже разобрался
     
Загрузка...

Поделиться этой страницей