2015西工大计算机机试代码参考

(题目来源--西工大计算机微信公众号)

1.求最小数,给定三个数(int型),输出最小的数

Input:
5 2 55
output:
2

参考代码:

#include<stdio.h>
int main(){
	int a,b,c,temp;
	scanf("%d %d %d",&a,&b,&c);
	if(a>=b){
	        if(b>=c)
			temp=c;
		else
			temp=b;
	}
	else if(a>=c)
		temp=c;
	else
		temp=a;
	printf("%d",temp);
	return 0;
}

2.十进制转换为二进制

input:
1030
otput:
10000000110
#include<stdio.h>
int main(void)
{
    int i=0,n,a[100];
    printf("请输入一个十进制整数.\n");
    scanf("%d",&n);
    while (n>0)
    {
        a[i]=n%2;
        i=i+1;
        n=n/2;
    }
    printf("十进制整数转换为二进制数是:\n");
    for(i--;i>=0;i--)
        printf("%d",a[i]);
    printf("\n");
    return 0;
}

3.迷宫问题:

#include <iostream>
using namespace std;
int main()
{
    int a[20][20];
    int num;
    cin>>num;
    int m,n;
    cin>>m>>n;
    char s;
    cin>>s;
    switch(s)
    {
    case 'w':
        if(m==0)
        {
            cout<<"N"<<endl;
        }
        else
        {
            cout<<"Y"<<endl;
        }
        break;
    case 's':
        if(m==num-1)
        {
            cout<<"N"<<endl;
        }
        else
        {
            cout<<"Y"<<endl;
        }
        break;
    case 'a':
        if(n==0)
        {
            cout<<"N"<<endl;
        }
        else
        {
            cout<<"Y"<<endl;
        }
        break;
    case 'd':
        if(n==num-1)
        {
            cout<<"N"<<endl;
        }
        else
        {
            cout<<"Y"<<endl;
        }
        break;
    }
    return 1;
}

 4.又一个迷宫问题:

#include <iostream>
using namespace std;
int main()
{
    int a[20][20];
    int num;
    cin>>num;
    for(int i=0;i<num;i++)
    {
        for(int j=0;j<num;j++)
        {
            cin>>a[i][j];
        }
    }
    int m,n;
    cin>>m>>n;
    char s;
    cin>>s;
    switch(s)
    {
    case '3'://w
        if(m==0)
        {
            cout<<"N"<<endl;
        }
        else
        {
            m=m-1;
            if(a[m][n]==0)
            {
                cout<<"Y"<<endl;
            }
            else
            {
                cout<<"N"<<endl;
            }
        }
        break;
    case '1'://s
        if(m==num-1)
        {
            cout<<"N"<<endl;
        }
        else
        {
            m=m+1;
            if(a[m][n]==0)
            {
                cout<<"Y"<<endl;
            }
            else
            {
                cout<<"N"<<endl;
            }
        }
        break;
    case '0'://a
        if(n==0)
        {
            cout<<"N"<<endl;
        }
        else
        {
            n=n-1;
            if(a[m][n]==0)
            {
                cout<<"Y"<<endl;
            }
            else
            {
                cout<<"N"<<endl;
            }
        }
        break;
    case '2'://d
        if(n==num-1)
        {
            cout<<"N"<<endl;
        }
        else
        {
            n=n+1;
            if(a[m][n]==0)
            {
                cout<<"Y"<<endl;
            }
            else
            {
                cout<<"N"<<endl;
            }
        }
        break;
    }
    return 1;
}

 5.字符串替换问题:

 

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string a[3];
    for(int i=0;i<3;i++)
    {
        getline(cin,a[i]);
    }
    int pos=a[0].find(a[1]);
    a[0].replace(pos,a[1].length(),a[2]);
    cout<<a[0]<<endl;
    return 1;

}

 6.六数码问题:

真的不会!!!!!

7.计算单词的个数:

#include<stdio.h>
int main()
{
    char s[81],c;
    int i,num=0,word=0;
    printf("请输入一行英文:\n");
    gets(s);
    for(i=0;(c=s[i])!='\0';i++)//判断句子是否到未
    if(c==' ') word=0;//是空格就为0
    else if(word==0)//不是空格就判断之前有没有空格
{
    word=1;//复位用来判断空格是否存在的开关
    num++;//如果之前有空格,单词数加1
}
    printf("本行中共有%d个单词.\n",num);
}

 8.连阴雨问题:

#include <iostream>
#include <string>
#include <cstring>
using namespace std;
char map[100][100];
int visited[100][100];
int ans=0;
int m,n;
struct
{
    int x;
    int y;
}offset[8]={
    {
        -1,-1
    },
    {
        -1,0
    },
    {
        -1,1
    },
    {
        0,-1
    },
    {
        0,1
    },
    {
        1,-1
    },
    {
        1,0
    },
    {
        1,1
    }
};
void dfs(int i,int j)
{
    int x,y,u;
    visited[i][j]=1;
    for(u=0;u<8;u++)
    {
        x=i+offset[u].x;
        y=j+offset[u].y;
        if(x>=0&&x<m&&y>=0&&y<n)//
        {
            if(map[x][y]=='W'&&visited[x][y]==0)
            {
                dfs(x,y);
            }
        }
    }
}
int main()
{
    int i,j;
    cin>>m>>n;
    cin.ignore();
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
            visited[i][j]=0;
        }
    }
    for(i=0;i<m;i++)
    {
        cin.getline(map[i],100);
    }
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
            if(map[i][j]=='W'&&visited[i][j]==0)
            {
                dfs(i,j);
                ans++;
            }
        }
    }
    cout<<ans;
    return 0;
}


猜你喜欢

转载自blog.csdn.net/lixiaohulife/article/details/89764194