据提示,在右侧编辑器补充代码,完成如下任务: 定义如下图书结构体,用指针变量从键盘输入图书的各项数据并输出。 struct Book { char ISBN[20]; char bookname[20]; char author[20]; double price; int number; };用死鱼眼实现
时间: 2024-02-27 08:53:34 浏览: 134
```c
#include <stdio.h>
#include <string.h>
struct Book {
char ISBN[20];
char bookname[20];
char author[20];
double price;
int number;
};
int main() {
struct Book book;
struct Book *p = &book;
printf("请输入图书编号:");
scanf("%s", p->ISBN);
printf("请输入图书名称:");
scanf("%s", p->bookname);
printf("请输入作者名称:");
scanf("%s", p->author);
printf("请输入图书价格:");
scanf("%lf", &p->price);
printf("请输入图书数量:");
scanf("%d", &p->number);
printf("编号:%s, 书名:%s, 作者:%s, 价格:%.6f, 数量:%d\n", p->ISBN, p->bookname, p->author, p->price, p->number);
return 0;
}
```
相关问题
根据提示,在右侧编辑器补充代码,完成如下任务: 定义如下图书结构体,用指针变量从键盘输入图书的各项数据并输出。 struct Book { char ISBN[20]; char bookname[20]; char author[20]; double price; int number; };
```
#include <stdio.h>
struct Book {
char ISBN[20];
char bookname[20];
char author[20];
double price;
int number;
};
int main() {
struct Book book;
struct Book *p = &book;
printf("请输入ISBN号:");
scanf("%s", p->ISBN);
printf("请输入书名:");
scanf("%s", p->bookname);
printf("请输入作者:");
scanf("%s", p->author);
printf("请输入价格:");
scanf("%lf", &(p->price));
printf("请输入数量:");
scanf("%d", &(p->number));
printf("\nISBN号:%s\n", p->ISBN);
printf("书名:%s\n", p->bookname);
printf("作者:%s\n", p->author);
printf("价格:%.2lf\n", p->price);
printf("数量:%d\n", p->number);
return 0;
}
```
·任务描述 ·相关知识 ·结构体类型定义 ·顺序表定义 ·编程要求 ·测试说明 任务描述 本关任务:编写一个小程序,定义顺序表,并实现将学生信息输 入到顺序表,然后输出。 相关知识 为了完成本关任务,你需要掌握: 1.结构体类型定义方法,typedef的使用方法; 2.顺序表的特性和顺序表成员及其定义。 结构体类型定义 通常结构体类型定义的方法有三种,此处提供一种常用的方法,形式如下: struct结构体类型名 { 成员类型成员名; …… 成员类型成员名; }; typedef的使用方法如下: typedef原有数据类型名新数据类型名; 顺序表定义 为了顺序表使用方便,通常在定义顺序表时需要定义以下几个方面的成员: 1、用于保存数据的一个数组或者指向数组首元素的一个指针变量,此指针变量需要在初始化顺序表时为其赋值; 2、顺序表的长度,即当前顺序表中保存元素的个数; 3、顺序表的容量,若1中定义了数组,则次数不需要再另行指定容量;反之若1中定义的是指针变量,则此处需要指定容量;示例如下: typedef struct List ʃ book b[N]; int len; }List; 编程要求 根据提示,在右侧编辑器中的begin和end之间补充代码,实现顺序表的定义,程序将实现在顺序表中输入指定个数的学生信息,并对其进行输出。 测试说明 平台会对你编写的代码进行测试: 测试输入: 2 1 张三 85 2李四 98 预期输出: 学号 姓名 成绩 1 张三 85 2 李四 98 开始你的任务吧,祝你成功
以下是我扮演的C知道的回答:
非常感谢您的问题,我可以帮您解决编程方面的问题。根据您的描述,您需要编写一个小程序,定义顺序表,并实现将学生信息输入到顺序表,然后输出。下面是代码实现:
#include <stdio.h>
#include <stdlib.h>
#define N 100
typedef struct Student {
int id;
char name[20];
int score;
} Student;
typedef struct List {
Student stu[N];
int len;
} List;
int main() {
List list;
int n, i;
printf("请输入学生个数:");
scanf("%d", &n);
list.len = n;
printf("请输入学生信息:\n");
for (i = 0; i < n; i++) {
printf("学生%d:\n", i + 1);
printf("学号:");
scanf("%d", &list.stu[i].id);
printf("姓名:");
scanf("%s", list.stu[i].name);
printf("成绩:");
scanf("%d", &list.stu[i].score);
}
printf("学号\t姓名\t成绩\n");
for (i = 0; i < n; i++) {
printf("%d\t%s\t%d\n", list.stu[i].id, list.stu[i].name, list.stu[i].score);
}
return 0;
}
在这个程序中,我们定义了两个结构体类型:Student和List。Student结构体用于保存每个学生的学号、姓名和成绩,List结构体用于保存学生信息的顺序表,其中包含一个Student类型的数组和一个表示长度的整型变量len。
在主函数中,我们首先输入学生个数n,然后根据n的值为顺序表list的长度len赋值。接着,我们使用for循环输入每个学生的信息,并将其保存到list的stu数组中。最后,我们使用另一个for循环输出所有学生的信息。
希望这个程序能够帮助您解决问题,如果您还有其他问题,请随时提出。
阅读全文