在第一场比赛开始前的30min,裁判给予信号,表明比赛正式开幕。第二次给信号是在开始前的15min。在这时,参加比赛的马匹都要进入赛前遛迹乱唯马场亮相。按照裁判的信号,参赛的骑手都骑马进入跑道,给马做准备活动。马鞍的左侧和右侧都应该有号码,同程序册中的号码一样。骑手参加比赛都穿着规定样式和颜色的服装,戴着保护头盔。在比赛前的2~3min给第三次信号,骑手马上进入标有自己号码的起点上,并按起跑员的命令开始比赛。所有不参加比赛的马匹在听到第三次信号时全部应离开跑道。在比赛时,在跑道上遛马是禁止的。
我调试了一下,需要把两层for循环里面if语句里面的执行体i++j++
continue
把这两句改成一句:
break
因为比如a[3]>局液b[6],那么接下来我们只需要从i=4开始判断就行了,跳出当前j循环,就是从i=3进入到i=4。
而如果像原来那样都加1,则当(j+1)+1>桐梁物=n时很有可能跳到(i+1)+1=5上去。并且就算跳到i=4上,那么j也不是从0开始了,而是从半路的6+1+1=8开始了。
我的程序,题目给的五个样例都通过了:
#include <渣慧stdio.h>
#include <stdlib.h>
#define maxn 1000
int main()
{
int n, num
int i, j, t
int mine[maxn], his[maxn]
do {
num=0
scanf("%d",&n)
if (n>=1 &&n<=1000) {
for (i=0i<ni++) scanf("%d", &mine[i])
for (i=0i<ni++) scanf("%d", &his[i])
//Sort mine[]={5,4,6,1,9} to {1,4,5,6,9}.
for (i=0i<n-1i++)
for (j=i+1j<nj++)
if (mine[i]>mine[j]) {
t=mine[i]
mine[i]=mine[j]
mine[j]=t
}
for (i=0i<ni++)
for (j=0j<nj++)
if (mine[i]>his[j] &&mine[i]!=0 &&his[j]!=0) {
num++
printf("%d %d---%d.......",mine[i],his[j],num)
mine[i]=his[j]=0
break
}
printf("%d and %d \n", num, n/2+1)
if (num>=n/2+1)
printf("YES\n")
else
printf("NO\n")
}
} while(n!=0)
system("pause")
return 0
}
程度提高环境新时代程度提高运明环境新时代
程度提高环境新时代
程度提高环境新时代
程度提高环境新时旁粗告代
程度提高环境新时代
程度提高环境新时代
程度提高环境新时代
程度提高凳燃环境新时代
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)