Программа Которая Вводит Фактические Данные Из Таблицы. Не Могу Исправ

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

  1. Ksushka

    Ksushka Гость

    Во второй строчке не записывает данные. Как бы просто пропускает . Второю записывает на 3ю. А во второй ересь какая та...Подскажите пожалуйста! В чем ошибка и как ее исправить :)
    Вот мой код:

    #include "stdafx.h"
    #include "stdio.h"
    #include "locale.h"
    #include "conio.h"



    void main()
    {
    setlocale(LC_ALL,"rus");
    char name1, name2, name3;
    float sc1, sc2, sc3;
    float cnt1, cnt2, cnt3;
    long long int sq1, sq2, sq3;
    /* Введение фактических данных*/
    printf("1. Введите: Спектральный класс, Приблизительная масса, Часть, Численность >");
    scanf("%c %f %f %d", &name1, &sc1, &cnt1, &sq1);
    printf("2. Введите: Спектральный класс, Приблизительная масса, Часть, Численность >");
    scanf("%c %f %f %d", &name2, &sc2, &cnt2, &sq2);
    printf("3. Введите: Спектральный класс, Приблизительная масса, Часть, Численность >");
    scanf("%c %f %f %d", &name3, &sc3, &cnt3, &sq3);
    /* Вывод таблицы */
    /* вывод заголовков */
    printf("-----------------------------------------------\n");
    printf("|Приблизительное количество звезд разных спектральных классов в Галактике |\n");
    printf("|-------------------------------------------------------------------------|\n");
    printf("|Спектральный класс | Приблизительная масса | Часть |Численность |\n");
    printf("|-------------------------------------------------------------------------|\n");
    /* вывод строк фактических данных */
    printf("| %c | %-7.5f | %4.2f | %12d |\n", name1, sc1, cnt1, sq1);
    printf("| %c | %-7.5f | %4.2f | %12d |\n", name2, sc2, cnt2, sq2);
    printf("| %c | %-7.5f | %4.2f | %12d |\n", name3, sc3, cnt3, sq3);
    /* вывод примечаний */
    printf("|------------------------------------------------------------------------|\n");
    printf("|Примечание: не показаны данные для классов: B, A, G, K; |\n");
    printf("--------------------------------------------------------------------------\n");
    getch();

    }
     

    Вложения:

  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    я тебе уже отвечал на этот вопрос, с одного раза не понятно?
    не используй %c, оно опасное, есть %s
    выкинь пробелы из строки модификаторов ввода (на всякий пожарный)

    Если особо упертый (будешь использовать %c) - пройдись отладчиком и посмотри на значение переменной name2.
    Значение напиши сюда и мы вместе подумаем почему оно такое ) - у меня ощущение что сам ты вообще ничего делать не хочешь и не воспринимаешь ответы на форуме.
     
  3. Ksushka

    Ksushka Гость

    Спасибо огромное !! При замене %c на %s, ЗАРАБОТАЛО!! Извините конечно но подобного ответа не было!Просто осваивать язык начала меньше недели назад. Поэтому много где не понятно. Мне не нужно готовых кодов! Просто если возможно тыкнуть носом в каку и показать))) Еще раз спасибо)
     
Загрузка...

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