69,382
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <string.h>
//sepecifiled structure model
typedef struct
{
char code[4];//记录代码
char name[10];//记录名称
int price;//单价
int number;//数量
long money;//金额总和
}R;
R a[4];
R *p[4];
int main(void)
{
int n,i,j;
R *temp;
printf("请输入你要输入的记录组数:\n");
scanf("%d",&n);
getchar();
//输入记录的情况
for(i=0;i<n;i++)
{
printf("请输入第%d条记录:\n",i+1);
scanf("%d%d%ld",&a[i].price,&a[i].number,&a[i].money);
p[i]=&a[i];
}
//对记录的名称进行排序
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(strcmp(p[j]->code,p[j+1]->code)>0)
{
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
else
if(p[j]->money<p[j+1]->money)
{
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}
//输出记录
printf("记录输出如下所示:\n");
for(i=0;i<n;i++)
printf("%s,%s,%d,%d,%ld\n",p[i]->code,p[i]->name,p[i]->price,p[i]->number,p[i]->money);
//金额总和进行排序
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(p[j]->money>p[j+1]->money)
{
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
//输出最大金额的记录名称
printf("%s\n",p[n-1]->code);
return 0;
}
#include <stdio.h>
#include <string.h>
//sepecifiled structure model
typedef struct
{
char code[4];//记录代码
char name[10];//记录名称
int price;//单价
int number;//数量
long money;//金额总和
}R;
R a[4];
R *p[4];
int main(void)
{
int n,i,j;
R *temp;
printf("请输入你要输入的记录组数:\n");
scanf("%d",&n);
getchar();
//输入记录的情况
for(i=0;i<n;i++)
{
printf("请输入第%d条记录:\n",i+1);
scanf("%s%s%d%d%ld",a[i].code,a[i].name,&a[i].price,&a[i].number,&a[i].money);
p[i]=&a[i];
}
//对记录的名称进行排序
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(strcmp(p[j]->code,p[j+1]->code)>0)
{
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
else
if(p[j]->money<p[j+1]->money)
{
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}
//输出记录
printf("记录输出如下所示:\n");
for(i=0;i<n;i++)
printf("%s,%s,%d,%d,%ld\n",p[i]->code,p[i]->name,p[i]->price,p[i]->number,p[i]->money);
//金额总和进行排序
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(p[j]->money>p[j+1]->money)
{
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
//输出最大金额的记录名称
printf("%s\n",p[n-1]->code);
return 0;
}