欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

补充

程序员文章站 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;
}