某公司上机题

来源:互联网 发布:诺里尔斯克 知乎 编辑:程序博客网 时间:2024/05/29 18:02


        前几天出去面试,笔试和面试后,技术主管给出了道上机题:六个数,要一直按由小到大的顺序排列,可以随意的添加和删除。。。

        对于这个公司的面试这里不想多说什么,只分享下技术。


     程序是以很简单的方式做出来的,其中并未考虑执行效率问题,上机题嘛,弄出个结果就很好了

#include<stdio.h>

#include<string.h>

int num[6];

void add(int n)

{

int i,post=0;

int k;

while((n>num[post])&&(post<6))

post++;

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

{

    num[i]=num[i+1];

}

num[post-1]=n;

for(k=0;k<6;k++)

printf("%d ",num[k]);

printf("\n");

}

void del(int n)

{

int i;

int k;

int post=n;

for(i=post-1;i>0;i--)

{

    num[i]=num[i-1];

}

num[0]=0;

for(k=0;k<6;k++)

printf("%d ",num[k]);

printf("\n");

}

void ret()

{

int i,k;

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

num[i]=0;

for(k=0;k<6;k++)

printf("%d ",num[k]);

printf("\n");

}

main()

{

int n,i;

char chr;

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

num[i]=0;

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

printf("%d ",num[i]);

printf("\n");

while(1)

{

scanf("%c,%d",&chr,&n);

if(chr=='A')

add(n);

else if(chr=='D')

del(n);

else if(chr=='R')

ret();

}

}

运行结果如下:


原创粉丝点击