1. Уважаемые участники и гости, 19 октября codeby будет работать в режиме "Только чтение". Регистрация новых участников будет закрыта. 20 октября портал продолжит работу в прежнем режиме.

Ошибка При Обработке Данных

Тема в разделе "Общие вопросы по С и С++", создана пользователем WildClown, 16 сен 2012.

Статус темы:
Закрыта.
  1. WildClown

    WildClown Гость

    Репутация:
    0
    cтолкнулся с такой пробелммой (только начал изучать C++ на базе MS Visual Studio 2008)
    Run-Time Check Failure #2 - Stack around the variable 'vv3' was corrupted.
    суть программы элементарна - пользователь вводит данные, а они всего лишь выводятся ввиде таблицы. Собственно преподователю было "некогда" помочь решить эту проблемму, вот решил задать вопрос тут.
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">код программы</div></div><div class="sp-body"><div class="sp-content">
    Код:
    #include <stdio.h>
    #include <locale.h>
    int main(void) {
    char vid1[5], vid2[5], vid3[5];
    char dm1, dm2, dm3;
    float pm1, pm2, pm3;
    short vv1, vv2, vv3;
    setlocale (LC_ALL,"rus");
    printf("1. Введите:Вид транс,длин марш,Протяж марш (км),Время в дороге(мин)");
    scanf("%s %c %f %d",vid1, &dm1, &pm1, &vv1);
    printf("2.Вид транс,длин марш,Протяж марш (км),Время в дороге(мин)");
    scanf("%s %c %f %d",vid2, &dm2, &pm2, &vv2);
    printf("3. Введите:Вид транс,длин марш,Протяж марш (км),Время в дороге(мин)");
    scanf("%s %c %f %d",vid3, &dm3, &pm3, &vv3);
    printf("-----------------------------------------------\n");
    printf("|Ведомость общественного транспорта |\n");
    printf("|---------------------------------------------|\n");
    printf("| Вид транс| длин марш |Протяж марш (км)|Время в дороге(мин)|\n");
    printf("|----------|-------|-----------|-------------|\n");
    printf("| %s | %c | %f | %d |\n", vid1, dm1, pm1, vv1);
    printf("| %s | %c | %f | %d |\n", vid2, dm2, pm2, vv2);
    printf("| %s | %c | %f | %d |\n", vid3, dm3, pm3, vv3);
    printf("|---------------------------------------------|\n");
    printf("| Примечание: Тр - трамвай, Тс - троллейбус;|\n");
    printf("|А - автобус|\n");
    printf("-----------------------------------------------\n");
    return 0;
    
    }
     
  2. rrrFer

    rrrFer Гость

    Репутация:
    0
    я бы убрал пробелы в scanf, остерегся бы %c (потому что он считывает один символ, даже если это пробел), удалил бы все лишнее (и посмотрел бы что у меня вводится в самом первом scanf-е- а уже там не все гладко, vv3 тут не причем, программа чудом не падает раньше).

    Добавлено:
    Код:
    #include <stdio.h>
    
    int main() {
    char vid1[5], dm1;
    float pm1;
    short vv1;
    scanf("%s %c%f%d", vid1, &dm1, &pm1, &vv1);
    printf("| %s | %c | %f | %d |\n", vid1, dm1, pm1, vv1);
    return 0;
    }
    а лучше убери %c и символ замени на char dm1[2], Это тоже не лучший вариант, но по крайней мере, программа не будет падать при вводе двух пробелов перед символом )
     
  3. rrrFer

    rrrFer Гость

    Репутация:
    0
    Преподаватель все делает верно. Он подталкивает вас к чтению книжек и самостоятельной работе. К форуму стоит обращаться когда все остальные методы перепробованы. В Вашем случае было бы достаточно один раз пройтись по программе отладчиком и сравнить считанные программой значения с ожидаемыми.
     
  4. WildClown

    WildClown Гость

    Репутация:
    0
    r04
    уже рано советы довать, сам разобрался через 10 мин.
    Про преподавателя могу сказать одно - дно. Прити сказать за всю пару что теперь мы учим C и собственно C++ , это скилл конечно.
     
  5. Eleno4ka

    Eleno4ka Гость

    Репутация:
    0
    WildClown, нельзя быть преподавателем не умея учить. На всё возможен человеческий фактор, что-нибудь вроде: устал,все достали, и т.д.
    А вообще скорее всего у таких как он руки опускаются учить тех что даже четыре слова нормально написать не может.
    "Уже (произошедшее действие) рано (отсрочка действия) совета довать (неграмотность)" - великий русский язык
     
Загрузка...
Статус темы:
Закрыта.

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