双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

结构

14号选手 14号选手 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
以下是所写代码
#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;
}

输出之后是这样的

但是在p106(m001,m106也是一样的)之后就应该是逗号啊,为什么后面的字符串又重复输出了,调试了好几遍都是这样,各位高手帮忙解答下
...全文

相关推荐

评论 9
收藏 已收藏
分享
返回顶部
14号选手
C语言 70,039 成员 243,237 内容