啊调了一个晚下了。还是没想出哪里逻辑异常。就是不出结果,编译没有关问题的
求助啊,调了一个晚上了。还是没想出哪里逻辑错误。就是不出结果,编译没问题的
#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;
}
------解决方案--------------------
#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); }