/*
产品销售记录包括 产品代码 名称 单价 数量 金额 等信息
1)编写input函数 输入10个产品销售记录的如上信息
2)编写sum函数 计算金额 = 单价 * 数量
3)编写sort函数 按金额从大到小排序
*/
#include<stdio.h>
#define PRODUCTS 3
//函数原型
void input();
float sum();
void sort();
//自定义结构体类型PRODUCT_SALES_RECORD
typedef struct{
int code;
char name[21];
float price;
int quantity;
}PRODUCT;
PRODUCT products[PRODUCTS],*p_product = products;
void main(){
input();
sort();
//打印测试
p_product = &products[0];
for(int i = 0; i < PRODUCTS; i++){
printf("code = %d | quantity = %d | price = %.2f | name = %s | sum = %.2f\n",p_product->code,p_product->quantity,p_product->price,p_product->name,sum());
p_product++;
}
}
//键入产品信息
void input(){
printf("Enter example:code,quantity,price,name(30)\n");
for(int i = 0; i < PRODUCTS; i++){
scanf("%d,%d,%f,%s",&p_product->code,&p_product->quantity,&p_product->price,&p_product->name);
//getchar();
p_product++;
}
}
//产品金额
float sum(){
return p_product->price * p_product->quantity;
}
//产品金额排序大-小
void sort(){
//指针复位,防止万一
p_product = &products[0];
PRODUCT temp;
for(int i = 0; i <PRODUCTS -1 ;i++){
for(int k = 0; k < PRODUCTS - 1 -i ;k++){
if( (p_product+k)->price * (p_product+k)->quantity < (p_product+k+1)->price * (p_product+k+1)->quantity){
temp = *(p_product+k);
*(p_product+k) = *(p_product+k+1);
*(p_product+k+1) = temp;
}
}
}
}
c语言 结构体练习之 实现产品销售记录的相关功能
最新推荐文章于 2023-03-15 22:34:05 发布