结构
以下是所写代码
输出之后是这样的

但是在p106(m001,m106也是一样的)之后就应该是逗号啊,为什么后面的字符串又重复输出了,调试了好几遍都是这样,各位高手帮忙解答下
#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也是一样的)之后就应该是逗号啊,为什么后面的字符串又重复输出了,调试了好几遍都是这样,各位高手帮忙解答下
...全文
相关推荐
结构体使用详解,与结构体如何嵌套使用
详细介绍了,结构体的声明,初始化,与使用成员变量的各种方法,其中最大的亮点是结构体的嵌套使用,类和联合也是同样的道理,大家共同学习呀!!
第8讲-结构体与结构体数组
讲解区分结构体与结构体数组:结构体的引出、结构体变量的定义和引用、结构体数组
C语言:结构体与结构体指针
将结构体变量作为函数参数,是将实参值传递给形参,属于值传递。将结构体所有参数传递给形参使用,但本身的值不会改变。将指向结构体变量的指针作为实参进行传递时,是将结构体变量的地址传递给形参,属于地址传递,会改变实际结构体变量的成员值的。
数据结构中常用的逻辑结构和存储结构
数据结构中常用的逻辑结构和存储结构介绍
数据结构的各种结构案例
一个适用的关于数据结构的程序集合,相信会帮助你更好的理解线性表、树、图等各种结构示例,以及一些实用讲解



