数组解决问题,求大佬帮忙,急急急!

「已注销」 2021-03-18 09:43:43
在线等啊
...全文
129 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码大师 2021-05-06
  • 打赏
  • 举报
回复
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html
自信男孩 2021-03-19
  • 打赏
  • 举报
回复
引用 7 楼 m0_56240570 的回复:
[quote=引用 5 楼 自信男孩的回复:]贴源码吧,数组其实就是一段连续的内存;用malloc/calloc等申请的空间一样可以作为数组使用。

刚学,不太懂怎么写,可以具体一点吗?[/quote]
先自己试着写写,这样的例子我想书本上也是有的。给你写好,调好,那么你能学到什么?稍微修改一下需求,一样还是不会,自己要试着练练~
qzjhjxj 2021-03-19
  • 打赏
  • 举报
回复
重新排版下,数组数量设为题目要求的10个:
//产品销售记录包括 产品代码 名称 单价 数量 金额 等信息
//1)编写input函数 输入10个产品销售记录的如上信息
//2)编写sum函数 计算金额 = 单价 * 数量
//3)编写sort函数 按金额从大到小排序

#include<stdio.h>
#define PRODUCTS 10 //按题目要求10个产品

void  input();
float sum(float a,int n);
void  sort();


typedef struct{ //自定义结构体类型
	int   code;
	char  name[21];
	float price;
	int   quantity;
}PRODUCT;

PRODUCT products[PRODUCTS];//定义10个产品记录的数组

void main()
{
      input(); //输入
      sort();  //排序,从大到小
      for(int i = 0; i < PRODUCTS; i++){ //打印输出
       printf("code = %d | quantity = %d | price = %.2f | name = %s | sum = %.2f\n",
             products[i].code,products[i].quantity,products[i].price,products[i].name,
             sum(products[i].price,products[i].quantity));
      }
      
}

void input(){
     printf("Enter example:code,quantity,price,name(30)\n");
     for(int i = 0; i < PRODUCTS; i++){
        scanf("%d %d %f %s", &products[i].code,&products[i].quantity,
                                   &products[i].price,products[i].name);
	}
}

float sum(float a,int n)
{
     return a * n;
}

void sort(){
      PRODUCT temp;
      for (int i = 0; i <PRODUCTS -1 ;i++){
         for (int k = 0; k < PRODUCTS - 1 -i ;k++){
           if((products[k].price * products[k].quantity)<
                                  (products[k+1].price * products[k+1].quantity))
           {
                 temp          = products[k];
                 products[k]   = products[k+1];
                 products[k+1] = temp;
           }
         }
      }
}


//Enter example:code,quantity,price,name(30)
//11 20 2.00 aa
//22 30 1.00 bb
//33 10 3.00 cc
//code = 11 | quantity = 20 | price = 2.00 | name = aa | sum = 40.00
//code = 22 | quantity = 30 | price = 1.00 | name = bb | sum = 30.00
//code = 33 | quantity = 10 | price = 3.00 | name = cc | sum = 30.00
//请按任意键继续. . .
qzjhjxj 2021-03-19
  • 打赏
  • 举报
回复
改好,供参考:
//产品销售记录包括 产品代码 名称 单价 数量 金额 等信息
//1)编写input函数 输入10个产品销售记录的如上信息
//2)编写sum函数 计算金额 = 单价 * 数量
//3)编写sort函数 按金额从大到小排序

#include<stdio.h>
#define PRODUCTS 3

void input();
float sum(float a,int n);
void sort();


typedef struct{ //自定义结构体类型
	int code;
	char name[21];
	float price;
	int quantity;
}PRODUCT;

PRODUCT products[PRODUCTS];

void main()
{
	input(); //输入
	sort();  //排序,从大到小
        for(int i = 0; i < PRODUCTS; i++){ //打印输出
           printf("code = %d | quantity = %d | price = %.2f | name = %s | sum = %.2f\n",products[i].code,
           products[i].quantity,products[i].price,products[i].name,sum(products[i].price,products[i].quantity));
	}
        system("pause");
}

void input(){
        printf("Enter example:code,quantity,price,name(30)\n");
	for(int i = 0; i < PRODUCTS; i++){
		scanf("%d %d %f %s", &products[i].code,&products[i].quantity,
                                         &products[i].price,products[i].name);
	}
}

float sum(float a,int n)
{
	return a * n;
}

void sort(){
	PRODUCT temp;
	for (int i = 0; i <PRODUCTS -1 ;i++){
            for (int k = 0; k < PRODUCTS - 1 -i ;k++){
                 if( (products[k].price * products[k].quantity) < products[k+1].price * products[k+1].quantity){
				temp          = products[k];
				products[k]   = products[k+1];
				products[k+1] = temp;
			}
		}
	}
}


//Enter example:code,quantity,price,name(30)
//11 20 2.00 aa
//22 30 1.00 bb
//33 10 3.00 cc
//code = 11 | quantity = 20 | price = 2.00 | name = aa | sum = 40.00
//code = 22 | quantity = 30 | price = 1.00 | name = bb | sum = 30.00
//code = 33 | quantity = 10 | price = 3.00 | name = cc | sum = 30.00
//请按任意键继续. . .
「已注销」 2021-03-19
  • 打赏
  • 举报
回复
引用 5 楼 自信男孩的回复:
贴源码吧,数组其实就是一段连续的内存;用malloc/calloc等申请的空间一样可以作为数组使用。
刚学,不太懂怎么写,可以具体一点吗?
「已注销」 2021-03-19
  • 打赏
  • 举报
回复
引用 3 楼 qzjhjxj的回复:
是数组呀,结构体数组products[PRODUCTS]:
#define PRODUCTS 3//数组的大小,这里预设为3

//函数原型
void input();
float sum();
void sort();
	
//自定义结构体类型
typedef struct{
	int code;    //产品代码
	char name[21];//产品名称
	float price;   //产品价格
	int quantity; //产品数量
}PRODUCT;

PRODUCT products[PRODUCTS],*p_product = products;//这里定义了一个结构体数组products[3],一个指向数组的指针p_product

后边是指针,需要用数组写
自信男孩 2021-03-19
  • 打赏
  • 举报
回复
贴源码吧,数组其实就是一段连续的内存;用malloc/calloc等申请的空间一样可以作为数组使用。

「已注销」 2021-03-19
  • 打赏
  • 举报
回复
引用 3 楼 qzjhjxj的回复:
是数组呀,结构体数组products[PRODUCTS]:
#define PRODUCTS 3//数组的大小,这里预设为3

//函数原型
void input();
float sum();
void sort();
	
//自定义结构体类型
typedef struct{
	int code;    //产品代码
	char name[21];//产品名称
	float price;   //产品价格
	int quantity; //产品数量
}PRODUCT;

PRODUCT products[PRODUCTS],*p_product = products;//这里定义了一个结构体数组products[3],一个指向数组的指针p_product

下面是指针啊,后边怎么写啊
qzjhjxj 2021-03-19
  • 打赏
  • 举报
回复
是数组呀,结构体数组products[PRODUCTS]:
#define PRODUCTS 3//数组的大小,这里预设为3

//函数原型
void input();
float sum();
void sort();
	
//自定义结构体类型
typedef struct{
	int code;    //产品代码
	char name[21];//产品名称
	float price;   //产品价格
	int quantity; //产品数量
}PRODUCT;

PRODUCT products[PRODUCTS],*p_product = products;//这里定义了一个结构体数组products[3],一个指向数组的指针p_product

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧