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);