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

  • Автор темы Ksushka
  • Дата начала
K

Ksushka

#1
Во второй строчке не записывает данные. Как бы просто пропускает . Второю записывает на 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();

}
 

Вложения

R

rrrFer

#2
я тебе уже отвечал на этот вопрос, с одного раза не понятно?
не используй %c, оно опасное, есть %s
выкинь пробелы из строки модификаторов ввода (на всякий пожарный)

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

Ksushka

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