2015 58同城 编程题

2015 58同城 编程题_第1张图片

1.参考《程序员面试宝典》

#include <iostream>
#include <stdio.h>
using namespace std;
int a[10][10];
void fun(int n)
{
	int m=1,j,i;
	for(i=0;i<n/2;i++)
	{
		for(j=0;j<n-i;j++)
		{
			if(a[i][j]==0)
				a[i][j]=m++;
		}
		for(j=i+1;j<n-i;j++)
		{
			if(a[j][n-1-i]==0)
				a[j][n-1-i]=m++;
		}
		for(j=n-1-i;j>i;j--)
		{
			if(a[n-1-i][j]==0)
				a[n-1-i][j]=m++;
		}
		for(j=n-i-1;j>i;j--)
		{
			if(a[j][i]==0)
				a[j][i]=m++;
		}
	}
	if(n%2==1)
		a[n/2][n/2]=m;
}
int main()
{
	int n,i,j;
	cin>>n;
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
			a[i][j]=0;
	fun(n);
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			printf("%4d",a[i][j]);
		}
		cout<<endl;
	}
}
2.参考网上的代码

#include <iostream>
#include <vector>
#include <cstdio>
#include <stdlib.h>
#include <algorithm>

using namespace std;

bool comp(int a,int b)
{
	return a>b;
}

void read_file(vector<int> &data);
void sort(vector<int> &data);
void write_file(const vector<int> &data);

int main()
{
  vector<int> data;
  read_file(data);
  sort(data);
  write_file(data);
  return 0;
}
void read_file(vector<int> &data)
{
  FILE *fp = fopen("E:\f.txt", "r");
  if(NULL == fp)
  {
    cout<<"file does not exist"<<endl;
    exit(1);
  }
  while(!feof(fp))
  {
    char word[100];
    fgets(word, 20, fp);
    int i = atoi(word);	//将字符串转换成整数型
    data.push_back(i);
  }
  fclose(fp);
}
void sort(vector<int> &data)
{
  sort(data.begin(), data.end(),comp);
}
void write_file(const vector<int> &data)
{
  char buff[1024];
  FILE *fp = fopen("E:\f.txt", "w");//文件的路径,写入的方式
  vector<int>::const_iterator it = data.begin();
  while(it != data.end())
  {
    sprintf(buff, "%d\n", *it); 
    fputs(buff, fp);
    ++it;
  }
  fclose(fp);
}


你可能感兴趣的:(2015 58同城 编程题)