Как считать одним scanf сразу и символ и число? - C (СИ)
Формулировка задачи:
Как мне заставить scanf принять одно число (типо float), и символ(char).
Число я отправляю в функцию, причем в какую функцию зависит от символа.
C двумя int получалось
а здесь никак... Пробовал эксперементировать типо + поставить или еще что, не получается
scanf("%f %c",numerial,FirstChoiceTemp);#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
void Kelvin(float degreeKelvin) {
char SecondChoiceTemp = 'o';
float farenheit = 0;
float celsii = 0;
printf("Enter the new unit type (F, C, or K): \n" );
scanf("%c",&SecondChoiceTemp);
if (SecondChoiceTemp == 'K') {
printf("%f is %f", degreeKelvin,degreeKelvin);
}
else if (SecondChoiceTemp == 'F') {
farenheit = (degreeKelvin - 273.15) * 1.8 + 32;
printf("%f is %f", degreeKelvin,farenheit);
}
else if (SecondChoiceTemp == 'C') {
celsii = degreeKelvin - 273.15;
printf("%f is %f", degreeKelvin,celsii);
}
}
void Celsii(float degreeCelsii) {
char SecondChoiceTemp = 'o';
float farenheit = 0;
float kelvin = 0;
printf("Enter the new unit type (F, C, or K): \n" );
scanf("%c",&SecondChoiceTemp);
if (SecondChoiceTemp == 'C') {
printf("%f is %f", degreeCelsii,degreeCelsii);
}
else if (SecondChoiceTemp == 'F') {
farenheit = (degreeCelsii * 1.8) + 32;
printf("%f is %f", degreeCelsii,farenheit);
}
else if (SecondChoiceTemp == 'K') {
kelvin = degreeCelsii + 273.15;
printf("%f is %f", degreeCelsii,kelvin);
}
}
void Farenheit(float degreeFarenheit) {
char SecondChoiceTemp = 'o';
float celsii = 0;
float kelvin = 0;
printf("Enter the new unit type (F, C, or K): \n" );
scanf("%c",&SecondChoiceTemp);
if (SecondChoiceTemp == 'F') {
printf("%f is %f", degreeFarenheit,degreeFarenheit);
}
else if (SecondChoiceTemp == 'C') {
celsii = (degreeFarenheit - 32) * 1.8;
printf("%f is %f", degreeFarenheit,celsii);
}
else if (SecondChoiceTemp == 'K') {
kelvin = (degreeFarenheit-32) * 1.8 + 273.15;
printf("%f is %f", degreeFarenheit,kelvin);
}
}
void temperature() {
float numerial = 0;
char FirstChoiceTemp = 'o';
printf("Enter the temperature followed by its suffix (F, C, or K): ");
scanf("%f %c",&numerial,&FirstChoiceTemp);
if( (FirstChoiceTemp == 'K') || (FirstChoiceTemp == 'k') ){
Kelvin(numerial);
}
else if( (FirstChoiceTemp == 'C') || (FirstChoiceTemp == 'c') ){
Celsii(numerial);
}
else if( (FirstChoiceTemp == 'F') || (FirstChoiceTemp == 'f') ){
Farenheit(numerial);
}
}
int main(void) {
char Degree = 'o';
printf("T or t for temperature");
printf("D or d for temperature");
scanf("%c", &Degree);
if( (Degree == 'T') || (Degree == 't') ){
temperature();
}
return 0;
}scanf("%d i +%d",&FirstComplexImag,&FirstComplexReal);Решение задачи: «Как считать одним scanf сразу и символ и число?»
textual
Листинг программы
scanf("%f %c",&numerial,&FirstChoiceTemp);