关于openjudge上全局题号7619号:合影效果的小问题
关于openjudge上全局题号7619号:合影效果的小问题
我今天在oj上提交了这道题的答案,虽然写的有点复杂,但感觉还是没问题的啊,为什么就是通不过呢?
去年年底考的研究生,马上就机试了,这些基础的调试一塌糊涂,请各位大神帮忙指点指点!
#include
#include
#include<string.h>
using namespace std;
struct Stu{ //定义每名学生的内容:性别和身高
float high;
char chter[20];
}St[41];
char chr[2][20]={{“male”},{“female”}};//一个进行比对的数组(可有可无…)
int main()
{
int i,j,k=0,n;
float temp;
char tempC[20];
scanf("%d",&n);
for(i=0;i<n;i++)
cin>>St[i].chter >>St[i].high ;
for(i=0;i<n;i++)//在不改变相同数值或字符串位置的情况下,循环将性别为"female"的放在后面
{
for(j=i;j<n;j++)
if(strcmp(St[j].chter ,chr[1])==0&&St[j+1].high !=0)
{
temp=St[j].high ;St[j].high =St[j+1].high ;St[j+1].high =temp;
strcpy(tempC,St[j].chter) ;strcpy(St[j].chter,St[j+1].chter) ;strcpy(St[j+1].chter,tempC) ;
}
}
for(i=0;i<n;i++) //找到male female分界点k
if(strcmp(St[i].chter ,St[i+1].chter )!=0)
{k=i;break;}
for(i=0;i<=k;i++)//male排序
for(j=i;j<=k;j++)
if(St[i].high >St[j].high )
{
temp=St[i].high ;St[i].high =St[j].high ;St[j].high =temp;
strcpy(tempC,St[i].chter) ;strcpy(St[i].chter,St[j].chter) ;strcpy(St[j].chter,tempC) ;
}
for(i=k;i<n;i++)//female排序
for(j=i;j<n;j++)
if(St[i].high <St[j].high )
{
temp=St[i].high ;St[i].high =St[j].high ;St[j].high =temp;
strcpy(tempC,St[i].chter) ;strcpy(St[i].chter,St[j].chter) ;strcpy(St[j].chter,tempC) ;
}
for(i=0;i<n-1;i++)printf("%.2f ",St[i].high );
printf("%.2f\n",St[n-1].high );
return 0;
}`
上一篇: 遇到的一些bug合集