补充
程序员文章站
2022-05-13 16:25:05
...
补充
1.已知在IN.DAT文件中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量计算得出。函数ReadDat()读取这100个销售记录并存入结构数组sell中。请编写函数SortDat(),其功能要求:按产品代码从小到大进行排列,若产品代码相等,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中
void SortDat(){
int i,j;
PRO xy;
/*对数组sell的所有100条记录进行选择排序*/
for(i=0;i<99;i++)
for(j=i+1;j<100;j++)
/*按每条记录dm字段(产品代码)的大小进行升序排列*/
if(strcmp(Sell[i].dm,Sell[j].dm)>0)
{
xy=sell[i];
sell[i]=sell[j];
sell[j]=xy;
}
else if(strcmp(sell[i].dm,sell[j].dm)==0)
{ /*若dm字段相等则按je字段(金额)的大小进行降序排列*/
if(sell[i].je<sell[j].je)
{
xy=sell[i];
sell[i]=sell[j];
sell[j]=xy;
}
}
}
2.[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n3W1u9h9-1576982234715)(C:\Users\22423\Desktop\答案.assets\image-20191222101552212.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IaHtIxjH-1576982234715)(C:\Users\22423\Desktop\答案.assets\image-20191222101354422.png)]
3. 设有n个人坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始从1到m报数,如此进行下去直到所有的人都出圈为止。先要求按出圈次序,每10个人为一组,给出这n个人的顺序表
for(i=1;i<=n;i + +) /*给n个人从1到n编号*/
p[i-1]=i;
for(i=n;i>=2;i - -) /*当人数少于2时,停止报数*/
{
s1=(s1+m-1)%i; /*下一个开始报数的人的编号是(s1+m-1)%i*/
if(s1==0) /*若s1为0,则说明要开始报数的是最后一个人*/
s1=i;
w=p[s1-1]; /*将要出圈的人移至数组的最后*/
for(j=s1;j<=i-1;j + +) p[j-1]=p[j];//
p[i-1]=w;
}
上一篇: 改掉这些坏习惯,你不在是菜鸟,改掉坏习惯不在_PHP教程
下一篇: PHP评论回复解决方案