读书人

啊调了一个晚下了。还是没想出哪里逻辑

发布时间: 2012-11-08 08:48:11 作者: rapoo

求助啊,调了一个晚上了。还是没想出哪里逻辑错误。就是不出结果,编译没问题的
#include<stdio.h>

int array[400010];

int main()
{
int n,i,j;
int temp,num;
scanf("%d",&n);

for(i=0;i<n;i++)
{
scanf("%d",&array[i]);

}

for(i=0;i<n;i++)
{
for(i=j+1;j<n;j++)
{
if(array[i]>array[j])
{
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
temp=array[n/2+1];
num=0;
for(i=0;i<n;i++)
{
if(temp==array[i])

num++;
}
if(num<=n/2)
{
temp=0;
printf("%d",temp);
}
else
printf("%d",temp);

return 0;

}

[解决办法]

C/C++ code
for(i=0; i<n; i++)    {        for(j=i+1; j<n; j++)    //这里写错了,是给j赋值...        {            if(array[i]>array[j])            {                temp=array[i];                array[i]=array[j];                array[j]=temp;            }        }    }
[解决办法]
我没看到你的j在哪初始化
[解决办法]
C/C++ code
//冒泡排序for(i=0;i<n;i++)//改为:for(i=0;i < (n-1);i++)  for(i=j+1;j < n;j++)//改为:for(j=i+1;j < n;j++)
[解决办法]
跟踪调试下
[解决办法]
不知道你程序什么意思
1. int array[400010];
2. for(j=i+1; j<n; j++)
3.程序输出结果必定为0
C/C++ code
  temp=array[n/2+1];  num=0;  for(i=0;i<n;i++)  {     if(temp==array[i])      num++;     }  if(num<=n/2){      temp=0;printf("%d",temp);} 

读书人网 >C++

热点推荐