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

关于openjudge上全局题号7619号:合影效果的小问题

程序员文章站 2024-03-17 18:23:52
...

关于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;

}`

相关标签: openjudge