注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

瘋人院

lunatic asylum

 
 
 

日志

 
 

C语言的面试题  

2009-01-02 02:16:13|  分类: 編程語言 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

只允许使用一个循环先输出1至10内的奇数 然后输出其中的偶数 结果应该是这样的

1

3

5

7

9

2

4

6

8

大家可以竭尽全力的想啊

注:Windows环境下有一种实现极其的恶心

解答:

方法一:

#include <stdio.h>

void main(()

{

  int i;

  int num[10];

  char output[20];

  for(i=1;i <10;i++)

  {

    if (i%2!=0)

      num[i/2] = i;

    else

      num[5+i/2 -1] = i;

  }

  sprintf(output, "%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n",

          num[0],num[1],num[2],num[3],num[4],num[5],num[6],num[7],num[8]);

  printf(output);

 

方法二:

做的不好不要笑。。。 恶心也没法,谁叫别人是大爷.

甭管恶不恶心, 给它先弄出来.

#include <stdio.h>

int main(void)

{

  int a[10];

  int i, flag;

  for(i=0; i<10; ++i)

  {a[i]=i+1;}

  for(i=0, flag=0; ; i+=2, ++flag)

  {

    if(i<10) printf("%d ", a[i]);

    else

      printf("%d ", a[(i%10)+1]);

    if(flag==9)

      break;

   }

  system("pause");

  return 0;

}

 

 

方法三:

for(i=1;i <10;i++)

  {

    if (i <=5)

    cout < <(2*i-1) < <endl;

    else

      cout < <(2*i-10) < <endl;

  }

这样就好了。

面试官给的答案:

int main(){

    FILE *f[]={fopen("con","w"),fopen("con","w")};

    for(int i=1;i <10;fprintf(f[(i+1)%2],"%d\n",i++));

    return 0;

}

看来吸引不了人啊

大家看看答案吧

我看了以后算是晕了

注:Linux环境下没有这个问题

向stdout输出的话会直接返回

  评论这张
 
阅读(213)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017