#include<stdio.h> #include<string.h> struct book{ char name[100]; double price; }min,max,now; int main(void) { int i,n; min.price =999999; max.price =0; scanf("%d",&n); for(i=0;i<n;i++){ getchar(); gets(now.name ); scanf("%lf",&now.price ); if(min.price >now.price ){ strcpy(min.name,now.name); min.price =now.price ; } if(max.price <now.price ){ strcpy(max.name,now.name); max.price =now.price ; } } printf("%.2f, %s\n",max.price ,max.name ); printf("%.2f, %s\n",min.price ,min.name ); return 0;}写出这题的实验报告,包括实验结果与过程,实验运行状态分析和实验总结
时间: 2023-11-22 18:56:38 浏览: 78
SeqList.h #include <stdio.h> //包含标准输入输出流的头文件 #include <assert.h
实验题目:书籍价格比较
实验目的:熟悉结构体的基本使用方法,学会结构体数组的定义和使用,理解strcpy函数和结构体成员的访问方式。
实验内容:输入若干本书的名称和价格,比较它们的价格大小,输出价格最高和价格最低的书籍的名称和价格。
实验过程:
1. 定义结构体类型book,包括书籍名称和价格两个成员。
2. 定义结构体变量min和max,用于存储价格最低和价格最高的书籍。
3. 输入书籍数量n,并通过循环输入每一本书的名称和价格。
4. 比较每一本书的价格与当前的最低价和最高价,更新min和max变量。
5. 输出价格最高和价格最低的书籍的名称和价格。
实验代码:
```c
#include<stdio.h>
#include<string.h>
struct book{
char name[100];
double price;
}min,max,now;
int main(void) {
int i,n;
min.price =999999;
max.price =0;
scanf("%d",&n);
for(i=0;i<n;i++){
getchar();
gets(now.name );
scanf("%lf",&now.price );
if(min.price >now.price ){
strcpy(min.name,now.name);
min.price =now.price ;
}
if(max.price <now.price ){
strcpy(max.name,now.name);
max.price =now.price ;
}
}
printf("%.2f, %s\n",max.price ,max.name );
printf("%.2f, %s\n",min.price ,min.name );
return 0;
}
```
实验运行状态分析:
输入书籍数量n为3,然后输入三本书的名称和价格:
```
3
C Primer Plus, 99.9
Effective C++, 68.8
Head First Java, 59.9
```
程序输出结果如下:
```
99.90, C Primer Plus
59.90, Head First Java
```
可以看到,程序正确地输出了价格最高和价格最低的书籍的名称和价格。
实验总结:
通过本次实验,我学会了结构体的基本使用方法,包括定义结构体类型和结构体变量、访问结构体成员等;还学会了结构体数组的定义和使用方法,以及strcpy函数的基本使用方法。同时,通过本次实验,我也进一步熟悉了输入输出函数的使用方法。
阅读全文