哈尔滨工业大学2010计算机专业机试编程半岛在线注册真题带答案(2)

本站小编 半岛在线注册/2016-02-06


        {
            if(b[i]==0)
            {
                counter++;
            }
        }
        if(counter==(n+1))     //结果全零,不能输出n个零
            printf("%d",b[0]);
        else                        //如果不全零,只能是n位或n+1位
        {
            if(b[n]!=0)
                printf("%d",b[n]);
            for(i=n-1;i>=0;i--)
            {
                printf("%d",b[i]);
            }
        }
        printf("\n");
    }
    return 0;
}


题目描述:
输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。
输入:
测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。
输出:
对于每组输入,请输出结果。
样例输入:
2
1 3
0
样例输出:
-1
/*----------------------------------------------------------------------
1.顺序查找问题;
2.初始化下标为j=-1,顺序查找数组,若找到某个下标为i的数等于x,则j=i,
  查找完毕输出j,若查找过程中j未改变,输出结果就为-1;
-----------------------------------------------------------------------*/

#include<stdio.h>
int main()
{
    int i, n, b[200], j, x;
    while(scanf("%d",&n)!=EOF)
    {
        j = -1;
        for(i=0;i<n;i++)
        {
            scanf("%d",&b[i]);
        }
        scanf("%d",&x);

        for(i=0;i<n;i++)
        {
            if(x==b[i])
            {
                j = i;
            }
        }
        printf("%d\n",j);
    }
    return 0;
}


题目描述:
输入一个数n,然后输入n个数值各不相同,调换数组中最大和最小的两个数,然后输出。
输入:
测试数据有多组,输入n(1<=n<=20),接着输入n个数。
输出:
对于每组输入,输出交换后的结果。
样例输入:
2
1 3
样例输出:
3 1

参考答案:
/*----------------------------------------------------------------------
1.顺序查找问题;
2.初始化mini=maxi=1,maxn=minn=a[0],顺序查找数组,
  若找到某个下标为i的数大于maxn,则maxi=i,maxn=a[i],
  若找到某个下标为i的数小于minn,则mini=i,minn=a[i],
  查找完毕交换a[maxi],a[mini],顺序输出数组。
-----------------------------------------------------------------------*/
#include<stdio.h>
int main()
{
    int i ,n ,a[50] ,maxi ,mini, temp;
    while(scanf("%d",&n)!=EOF)
    {
        maxi=mini=0;
        scanf("%d",&a[0]);
        for(i=1;i<n;i++)
        {
            scanf("%d",&a[i]);

相关话题/计算机