重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
思路:在数值进行排序时,下标也同时移动。这就要求二者要联动。为此创建一个PAIR结构体,将此二者关联在一起。用库里的快排函数qsort可以省略排序的麻烦,并指定qsort按PAIR中数值大小为标准排序结构体数组,这样排序结果中的结构体数组下标和值还是保持开始时的对应关系。
10年积累的网站设计、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有西盟免费网站建设让你可以放心的选择与我们合作。
#includeSTDIO.H
#includestring.h
#includestdlib.h
#define N 8
typedef struct
{
int cj;//数值
int px;//下标
}PAIR;
//qsort的辅助比较函数
int compare(const void *p, const void *q)
{
PAIR t1= *(PAIR* )p;
PAIR t2= *(PAIR* )q;
return(t1.cjt2.cj);
}
int main()
{
PAIR a[N]={};
int cj[N]={};
int px[N]={};
printf("请输入%d个整数:", N);
for (int i=0;iN;i++)
{
scanf("%d",(a[i].cj));
a[i].px=i+1;
//数组
cj[i] = a[i].cj;
px[i] = a[i].px;
}
qsort((void *)a,N, sizeof(PAIR), compare);
printf("\n排好序的整数为:");
for (i=0;iN;i++)
{
printf("%d ",a[i].cj);
cj[i]=a[i].cj;
}
printf("\n对应原来的下标:");
for (i=0;iN;i++)
{
printf("%d ",a[i].px);
px[i] = a[i].px;
}
putchar('\n');
return 0;
}
#includestdio.h
float av(int n)
{int i,x,s=0;
for(i=0;in;i++)
{scanf("%d",x);
s+=x;
}
return (float)s/n;
}
int main()
{int n;
float cj;
printf("请输入10个学生的成绩:\n");
cj=av(10);
printf("平均分=%.1f\n",cj);
return 0;
}
从这句话来看,NUM应该是宏定义,定义了一个数量
float cj[NUM]是定义了一个名称为cj的数组,元素类型为浮点数。元素个数为NUM所定义的值
除此外,同时还定义了一个名为aver的浮点型变量。