| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 505 人关注过本帖
标题:c填空两道 求高手解!不胜感激
只看楼主 加入收藏
菜鸟向前冲
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-11-6
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
c填空两道 求高手解!不胜感激
运动会连续开了n天,一共发了m枚奖章。第一天发1枚并留下(m-1)枚的1/
7, 其余枚数用语第二天。第二天发2枚,并照例留下1/7,以后照此办理,最后一天发完
剩下的全部奖章。程序求解运动会开的天数和共发的奖章数。(15分)
         #include <stdio.h>
         main()
           {char m, n, x, b;
         x=0;
         do {x++; [  1  ]
              n=1; b=0xff;
              while((m>n)&&b) {

                    [  2  ]
                    if(!(m%7)) m=(int)(m/7)*6;
                    else b=0;
                    n++;}
               }  while [  3  ]
              printf("n=%6dm=%8d", n, 7*x+1);
   3.摇动排序算法程序,有数组r[0], r[1], "", r[n-1],从一端开始扫描,进行
比较、交换,然后改变下一趟的扫描方向,进行同样处理。(15分)
           #define m 100
           typedef struct {
                            int key;
                            float inf;
                            } element;
           typedef element list[m];
           void shakesort(list r, int n)
                   {
           int i, l, h;
           element extr;
           l=0;
           h=n-1;
             [  1  ]
           do
              {
                for(i=1; i<h; i++)
                 if(r.key>r[i+1]. key)
                   {        
                   extr=r;
                   r=r[i+1];
                   r[i+1]=extr;
               }
             [  3  ];
          for(i=h; i>=1, i--)
           if(r.key>r[i+1].key)
           {
            extr=r;
            r=r[i+1];
            r[i+1]=extr;
             [  4  ]   
            }
         [  5  ];
        } while (1<=h);
搜索更多相关主题的帖子: 感激 填空 
2009-11-06 22:44
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:20 
做了一下,第一题是:
1  m=x*7+1;
2  m-=n;
3  (m!=n);
·
·
第二题有错,结构体应用不对,我修改了整个程序(可执行),执行程序你再找答案吧。
程序代码:
#define m 10
typedef struct {
         int key;
           } element;
typedef element list[m];
list a={5,2,1,6,7,9,8,2,3,6};

void shakesort(list r, int n)
 {
   int i, l, h;
   element extr;
   l=0;
   h=n-1;
   do
     {
      for(i=l+1; i<=h; i++)
        if(r[l].key>r[i].key)
          {
           extr=r[i];
           r[i]=r[l];
           r[l]=extr;
          }
      l++;
      for(i=h-1; i>=l; i--)
        if(r[h].key<r[i].key)
           {
            extr=r[h];
            r[h]=r[i];
            r[i]=extr;
           }
      h--;
     } while (l<=h);
}

int main(void)
{
 int i;
 shakesort(a,m);
 for(i=0;i<m;i++)
   printf("%d ",a[i].key);
 printf("\n");
 return 0;
}

努力—前进—变老—退休—入土
2009-11-07 01:14
快速回复:c填空两道 求高手解!不胜感激
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015905 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved