#include<stdio.h>
struct book{ //定义结构体
int id;
char name[10];
char editor[10];
int price;
};
int main(){
struct book books[10]; //定义结构体数组
int i,sum=0;
for(i=0;i<10;i++){
scanf("%d%s%s%d",&books[i].id,&books[i].name,&books[i].editor,&books[i].price);
sum+=books[i].price;
}
//printf("%d",sum);
float ave;
ave=sum/10.0;
struct book *p; //定义一个指向book结构体类型的指针变量
printf("ID\tname\teditor\tprice");
for(p=books;p<books+10;p++){
/*p=book 使p指向结构体数组books中的第一个元素,p+1指向下一个元素
指向下一个元素指的是数组中的下一个元素,一个数组元素中存储的是包含
了定义的结构体中的所有元素。*/
printf("\n%d \t%s \t %s\t %d\n",p->id,p->name,p->editor,p->price);
}
printf("\n%.2f",ave);
return 0;
}
运行结果如图所示:

若有错误,敬请指出,万分感激!
本文通过一个具体的C语言程序实例,演示了如何使用结构体和指针进行数据处理。程序首先定义了一个结构体类型,用于存储书籍的相关信息,然后通过结构体数组收集并显示10本书的数据,最后计算并输出平均价格。
4909

被折叠的 条评论
为什么被折叠?



