以下是我提交的源代码(题目是华为2016校园招聘上机笔试题第二题)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_CNT 8
typedef struct
{
    char file_name[20];
    int rank;          //记录出现的顺序
    int cnt;
}ERROR_FILE;
ERROR_FILE error_file[10]; //这里不定义数组的数量会有问题么?
void Swap(ERROR_FILE *a, ERROR_FILE *b)
{
    ERROR_FILE temp = *a;
    *a = *b;
    *b = temp;
}
void delete_repeat(char *temp,int *index)
{
    int i,flag = 0;
    for(i = 0;i < (*index);i++)
    {
        if(strcmp(temp,error_file[i].file_name) == 0)
        {
            error_file[i].cnt++;
            flag = 1;
            break;
        }        
    }
    if(flag == 0)
    {
        strcpy(error_file[*index].file_name,temp);
        error_file[*index].cnt++;
        error_file[*index].rank = *index;
        (*index)++;
    }
}
void sort_error_file(int num)
{
    int i,j;
    for(i = 0;i < num;i++)
    {
        for(j = 1;j < num - i;j++)
        {
            if(error_file[j - 1].cnt < error_file[j].cnt)
            {
                Swap(&error_file[j - 1],&error_file[j]);
            }
            else if(error_file[j - 1].cnt == error_file[j].cnt)
            {
                if(error_file[j - 1].rank > error_file[j].rank)
                {
                    Swap(&error_file[j - 1],&error_file[j]);    
                }
            }
        }
    }
}
int main()
{
    int len,i,j,x,num = 0;
    char* s = (char *)malloc(sizeof(char));
    char* temp_reslut = (char *)malloc(sizeof(char));
    while(gets(s))
    {
        len = strlen(s);
        if(len <= 0)
            break;
        i = len - 1;
        while(s[i] != 92) //反斜杠对应的ascii码
            i--;
        strcpy(temp_reslut,&s[i+1]); 
        delete_repeat(temp_reslut,&num);
    }
    sort_error_file(num);
    x = num > MAX_CNT ? MAX_CNT : num;
    for(j = 0;j < x;j++)
    {
        if(j < x - 1)
        {
            printf("%s %d ",error_file[j].file_name,error_file[j].cnt);
        }
        else 
        {
            printf("%s %d",error_file[j].file_name,error_file[j].cnt);
        }
    }
    return 0;
}