阿里笔试题二

来源:互联网 发布:vb 数值转换为字符 编辑:程序博客网 时间:2024/05/21 06:45
#include <math.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <assert.h>#include <limits.h>#include <stdbool.h>/** 请完成下面这个函数,实现题目要求的功能 **/ /** 当然,你也可以不按照这个模板来作答,完全按照自己的想法来 ^-^  **/int time_cal(int num_list1_input[], int num_list2_input[], int num_list3_input[], char char_list_input[], int length){    for (int i = 0; i < length; ++i)    {        int j = 0;        for (j = 0; char_list_input[j] != ' '; ++j)        {            num_list1_input[i] = char_list_input[j] - '0';        }        for (int k = j + 1; char_list_input[k] != '\0'; ++k)        {            num_list3_input[i] = char_list_input[k] - '0';        }        num_list2_input[i] = num_list3_input[i] - num_list1_input[i];    }}void swap(int num_list1_input[], int num_list2_input[], int num_list3_input[], int length, int num1_input, int num2_input){    int num1_cp = 0;    int num2_cp = 0;    int num3_cp = 0;    num1_cp = num_list1_input[num1_input];    num2_cp = num_list2_input[num1_input];    num3_cp = num_list3_input[num1_input];    num_list1_input[num1_input] = num_list1_input[num2_input];    num_list2_input[num1_input] = num_list2_input[num2_input];    num_list3_input[num1_input] = num_list3_input[num2_input];    num_list1_input[num2_input] = num1_cp;    num_list2_input[num2_input] = num2_cp;    num_list3_input[num2_input] = num3_cp;  }void sort(int num_list1_input[], int num_list2_input[], int num_list3_input[], int length){    int k = 0;    for (int i = 0; i < length - 1; ++i)    {        k = i;        for (int j = i + 1; j < length; ++j)        {            if (num_list1_input[k] > num_list1_input[j])            {                k = j;            }        }        swap(num_list1_input, num_list2_input, num_list3_input, length, i, k);    }}int findMeetingTime(int meetingTimeArray_size, char** meetingTimeArray) {    int num_list_start[meetingTimeArray_size] = {0};    int num_list_end[meetingTimeArray_size] = {0};    int num_list_mid[meetingTimeArray_size] = {0};    int time_count = 0;    for (int i = 0; i < meetingTimeArray_size; ++i)    {        time_count = time_count + num_list_start[i] + num_list_mid[i];        if (time_count >= num_list_end[i])        {            return -1;        }    }    return 1;}int main() {    int res;    int _meetingTimeArray_size = 0;    int _meetingTimeArray_i;    scanf("%d\n", &_meetingTimeArray_size);    char* _meetingTimeArray[_meetingTimeArray_size];    for(_meetingTimeArray_i = 0; _meetingTimeArray_i < _meetingTimeArray_size; _meetingTimeArray_i++) {        char* _meetingTimeArray_item;        _meetingTimeArray_item = (char *)malloc(512000 * sizeof(char));        scanf("\n%[^\n]", &_meetingTimeArray_item);        _meetingTimeArray[_meetingTimeArray_i] = _meetingTimeArray_item;    }    int num_list_start[_meetingTimeArray_size] = {0};    int num_list_mid[_meetingTimeArray_size] = {0};    int num_list_end[_meetingTimeArray_size] = {0};    time_cal(num_list_start, num_list_mid, num_list_end, _meetingTimeArray, _meetingTimeArray_size);    sort(num_list_start, num_list_mid, num_list_end, _meetingTimeArray_size);    res = findMeetingTime(_meetingTimeArray_size, _meetingTimeArray);    printf("%d\n", res);    return 0;}
0 0
原创粉丝点击