本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。
输入格式:
输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。
输出格式:
在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。
输入样例:
2.12 88 c 4.7
输出样例:
c 88 2.12 4.70
JAVA:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
float a = in.nextFloat();
int b = in.nextInt();
String c = in.next();
float d = in.nextFloat();
System.out.printf("%s "+"%d "+"%.2f "+ "%.2f",c,b,a,d);
}
}
题目中浮点数未注明精度,运行结果double型和float均能运行成功,显然double型会占用更多的空间导致内存更大一些
C:
#include<stdio.h>
int main()
{
int b;
float f1, f2;
char *ch;
scanf("%f %d %c %f", &f1, &b, &ch, &f2);
printf("%c %d %.2f %.2f", ch, b, f1, f2);
return 0;
}
JAVA语法部分解析:
next() 与 nextLine() 区别
next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next() 不能得到带有空格的字符串。
nextLine():
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。
要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:判断输入的数和要获取的类型是否相同,这样就不会接收到其它的数据类型。但是做题中无需做这些操作。
注:Java中不能用%c输出字符,不要犯和我一样的错误—>