首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

问个很无聊的有关问题

2012-02-27 
问个很无聊的问题#defineNinta[N],b[N]intt//1for(inti0i Ni++){if(a[i] b[i]){ta[i]a[i]b[i]b

问个很无聊的问题
#define   N  
int   a[N],b[N];
int   t;//1
for(int   i=0;i <N;i++)
{
if(a[i]> b[i])
{
t   =   a[i];
a[i]   =   b[i];
b[i]=t;
}
}

#define   N  
int   a[N],b[N];
for(int   i=0;i <N;i++)
{
int   t;//2
if(a[i]> b[i])
{
t   =   a[i];
a[i]   =   b[i];
b[i]=t;
}
}

#define   N  
int   a[N],b[N];
for(int   i=0;i <N;i++)
{
if(a[i]> b[i])
{
int   t;//3
t   =   a[i];
a[i]   =   b[i];
b[i]=t;
}
}

像这种临时变量t,放在那个位置好呢?为什么?

[解决办法]
提一个不同看法。
从编译器的兼容性来讲,第1种好。第1种情况基本上什么编译器都能编译通过。
如果在一个函数中,有可能有多个这样的for循环,有一些编译器上可能遇到问题。
建议搂主使用第1种方式。
另外建议楼主把for循环里的i也提到前面去。


热点排行