C++输出最大偶数和最大奇数怎么运行不出来

#include <iostream.h>
const int n=20;
void main()
{ int x[n],i,maxj,maxo,max;
for(i=0;i<n;i++) cin>>x[i];
for(i=0;i<n;i++){
if(x[i]%2==0)
if (x[i]>max)
max=x[i], maxo=x[i];
else if(x[i]%2==1)
if (x[i]>max)
max=x[i],maxj=x[i];
else (x[i]%2!=1);cout<<"没有奇数";}

cout<<"最大偶数:"<<maxo<<'\n';
cout<<"最大奇数:"<<maxj;
}

max, maxi, maxj没有初始化

if 和 else if 就近匹配。奇数判断的else语句直接和最近的if匹配了

#include <iostream.h>
const int n=20;
void main()
{
int x[n],i,maxj,maxo,max;
maxj = 0;
maxo = 0;
max = 0;
for(i=0;i<n;i++) cin>>x[i];
for(i=0;i<n;i++)
{
if(x[i]%2==0)
{
if (x[i]>max)
max=x[i], maxo=x[i];
}
else if(x[i]%2==1)
{
if (x[i]>max)
max=x[i],maxj=x[i];
}
}

cout<<"最大偶数:"<<maxo<<'\n';
cout<<"最大奇数:"<<maxj;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-11
#include <iostream.h>
const int n=20;
void main()
{
int x[n],i,maxj,maxo,max;
for(i=0;i<n;i++)
cin>>x[i];
maxj = maxo = max = x[0];//未赋初始值
for(i=0;i<n;i++)
{
if(x[i]%2 == 0)
{
if(x[i]>maxo)
maxo = x[i];
}
else
{
if(x[i]>maxj)
maxj = x[i];
}
}
if(maxo%2==1)
{
cout<<"没有偶数"<<endl;
}
else
cout<<"最大偶数:"<<maxo<<'\n';

if(maxj%2==0)
{
cout<<"没有奇数"<<endl;
}
else
cout<<"最大奇数:"<<maxj;
}
第2个回答  2010-11-11
#include <iostream.h>
const int n=20;
void main()
{ int x[n],i,maxj,maxo,max;
for(i=0;i<n;i++) cin>>x[i];
max=x[0]; //加上这一句

for(i=0;i<n;i++){
if(x[i]%2==0)
{if (x[i]>max)
{ max=x[i], maxo=x[i];}
}
else if(x[i]%2==1)
{ if (x[i]>max)
{max=x[i],maxj=x[i];}
// else (x[i]%2!=1);cout<<
第3个回答  2010-11-11
if (x[i]>max)//这个时候max还没初始化呢,同学