⽤单个scanf⾸先输⼊学⽣的姓名,然后输⼊成绩(浮点数),然后⽤单个printf输出 学⽣的姓名和成绩,要求姓名20列,左对⻬,成绩8列,右对⻬。成绩保留⼩数点后⼀位。完成后, 将scanf更改为⾸先输⼊成绩,然后输⼊姓名,其它相同
时间: 2023-09-08 16:04:24 浏览: 86
### 回答1:
以下是第一个问题的代码:
```c
#include <stdio.h>
int main() {
char name[21];
float score;
printf("请输入学生的姓名和成绩:\n");
scanf("%s%f", name, &score);
printf("%-20s%8.1f\n", name, score);
return 0;
}
```
以下是第二个问题的代码:
```c
#include <stdio.h>
int main() {
char name[21];
float score;
printf("请输入成绩和学生的姓名:\n");
scanf("%f%s", &score, name);
printf("%-20s%8.1f\n", name, score);
return 0;
}
```
请注意,这两个程序都没有进行输入验证,实际使用时需要注意输入的合法性。
### 回答2:
首先,我们使用单个scanf来输入学生的姓名和成绩。代码如下:
```c
#include <stdio.h>
int main() {
char name[21]; // 存储学生姓名,长度为20
float score; // 存储学生成绩
printf("请输入学生的姓名:");
scanf("%s", name);
printf("请输入学生的成绩:");
scanf("%f", &score);
printf("%-20s%8.1f\n", name, score);
return 0;
}
```
运行程序后,会要求输入学生的姓名和成绩,然后按照指定的格式输出姓名和成绩。姓名占用20列,左对齐;成绩占用8列,右对齐,保留一位小数。
接下来,我们将scanf更改为首先输入成绩,然后输入姓名,其余部分保持不变。代码如下:
```c
#include <stdio.h>
int main() {
char name[21]; // 存储学生姓名,长度为20
float score; // 存储学生成绩
printf("请输入学生的成绩:");
scanf("%f", &score);
printf("请输入学生的姓名:");
scanf("%s", name);
printf("%-20s%8.1f\n", name, score);
return 0;
}
```
这次我们先输入成绩,然后输入姓名,其他部分与之前的程序保持不变。运行程序后,可以发现输入和输出的顺序发生了变化,但是输出结果依然符合要求。
### 回答3:
首先,使用单个`scanf`进行输入的代码如下:
```c
#include <stdio.h>
int main() {
char name[21];
float score;
printf("请输入学生姓名:");
scanf("%s", name);
printf("请输入成绩:");
scanf("%f", &score);
printf("%-20s%8.1f\n", name, score);
return 0;
}
```
上述代码中,`char name[21];`定义了一个长度为21的字符数组,用于存储学生的姓名。`float score;`定义了一个浮点数变量,用于存储学生的成绩。接下来,使用`printf`分别输出提示信息,再使用`scanf`分别输入学生的姓名和成绩。最后,使用`printf`按照要求的格式输出学生的姓名和成绩。
如果需要将`scanf`更改为先输入成绩,然后输入姓名的话,只需要将输入代码的顺序调换即可,代码如下:
```c
#include <stdio.h>
int main() {
char name[21];
float score;
printf("请输入成绩:");
scanf("%f", &score);
printf("请输入学生姓名:");
scanf("%s", name);
printf("%-20s%8.1f\n", name, score);
return 0;
}
```
这样,先输入成绩,然后再输入姓名。其余部分与之前的代码相同。
阅读全文