要求为:姓名,15列,左对 ⻬;性别,8列,右对⻬;年龄,8列,右对⻬;表头(Name、Gender、Age)和每⼀名学⽣,⽤ 单个printf输出。张三(zhangsan)的性别为男(M),年龄18;李四(lisi)的性别为⼥(F),年 龄20;王五(wangwu)的性别为⼥(F),年龄19。
时间: 2023-05-20 07:02:35 浏览: 171
以下是表格:
Name Gender Age
张三(zhangsan) M 18
李四(lisi) F 20
王五(wangwu) F 19
使用以下代码可以输出表格:
printf("%-15s%-8s%-8s\n", "Name", "Gender", "Age");
printf("%-15s%-8s%-8d\n", "张三(zhangsan)", "M", 18);
printf("%-15s%-8s%-8d\n", "李四(lisi)", "F", 20);
printf("%-15s%-8s%-8d\n", "王五(wangwu)", "F", 19);
相关问题
姓名,15列,左对 ⻬;性别,8列,右对⻬;年龄,8列,右对⻬;表头(Name、Gender、Age)和每⼀名学⽣,⽤ 单个printf输出。
### 回答1:
可以使用以下代码实现:
printf("%-15s%-8s%-8s\n", "Name", "Gender", "Age");
printf("%-15s%-8s%-8s\n", "John", "Male", "25");
printf("%-15s%-8s%-8s\n", "Jane", "Female", "22");
printf("%-15s%-8s%-8s\n", "Bob", "Male", "30");
这段代码可以输出一个表格,其中姓名、性别和年龄都有对齐的效果。注意,printf中的“-”表示左对齐,不加则为右对齐。
### 回答2:
这里使用`printf`函数来输出表头和每一个学生的信息。我们可以分别设置姓名、性别和年龄的列数来对齐输出。
```c
#include <stdio.h>
int main() {
printf("%-15s %-8s %-8s\n", "Name", "Gender", "Age");
// 以下为每个学生的信息
printf("%-15s %-8s %8d\n", "Alice", "Female", 18);
printf("%-15s %-8s %8d\n", "Bob", "Male", 17);
printf("%-15s %-8s %8d\n", "Cathy", "Female", 16);
//...
return 0;
}
```
输出结果为:
```
Name Gender Age
Alice Female 18
Bob Male 17
Cathy Female 16
...
```
这样就能保证姓名在左侧对齐,性别和年龄在右侧对齐了。其中`%-15s`表示占用15列并左对齐的字符串格式,`%-8s`表示占用8列并左对齐的字符串格式,`%8d`表示占用8列并右对齐的整数格式。
### 回答3:
以下是使用单个printf函数输出姓名、性别、年龄的表头和每一名学生的代码:
```c
#include <stdio.h>
int main() {
printf("%-15s%-8s%-8s\n", "Name", "Gender", "Age"); // 表头左对齐输出
printf("%-15s%8s%8d\n", "张三", "男", 18); // 第一名学生左对齐输出
printf("%-15s%8s%8d\n", "李四", "女", 19); // 第二名学生左对齐输出
printf("%-15s%8s%8d\n", "王五", "男", 20); // 第三名学生左对齐输出
// 其他学生信息依次类推
return 0;
}
```
这段代码在printf函数中使用了格式化输出的转义字符,其中`%-15s`表示字符串左对齐并占用 15 个字符的宽度,`%8s`表示字符串右对齐并占用 8 个字符的宽度,`%8d`表示整数右对齐并占用 8 个字符的宽度。
所以输出结果会表现为姓名左对齐,姓名列占用 15 个字符的宽度;性别和年龄右对齐,占用 8 个字符的宽度。每一名学生的信息都会根据对齐方式进行输出。
1.3 编写程序,用单个scanf首先输入学生的姓名,然后输入成绩(浮点数),然后用单个printf输出 学生的姓名和成绩,要求姓名20列,左对⻬,成绩8列,右对⻬。成绩保留小数点后一位。完成后, 将scanf更改为首先输入成绩,然后输入姓名,其它相同。
第一种情况(姓名在前):
```c
#include <stdio.h>
int main()
{
char name[21];
float score;
printf("请输入学生的姓名和成绩:\n");
scanf("%20s%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%20s", &score, name);
printf("%-20s%8.1f\n", name, score);
return 0;
}
```
阅读全文