C语言学习C语言杭电oj

第十一周编程题在线测试

2019-12-17  本文已影响0人  小小Henry

1山地训练

#include  <stdio.h>
#include  <string.h>
#define  N  5

long Fun(long M,long T, long U, long F, long D, char str[]);

int main()
{
    long M, T, U, F, D;
    char str[1000];
    long num;
    printf("Input M,T,U,F,D:");
    scanf("%ld%ld%ld%ld%ld", &M, &T, &U, &F, &D);
    getchar();
    printf("Input conditions of road:");
    gets(str);
    num = Fun(M, T, U, F, D, str);
    printf("num=%ld\n", num);
    return 0;
}

long Fun(long M, long T, long U, long F, long D, char str[])
{
    long time = 0;
    long counter = 0;
    for (int i = 0; *(str + i); i++, counter++)
    {
        if (*(str+i) == 'u' || *(str+i) == 'd')
        {
            time += U + D;
        }
        else if (*(str+i) == 'f')
            time += F*2;
        if (time > M)
            return counter;

    }
    return T-1;
}

2奇偶数分离

#include  <stdio.h>
#include  <string.h>

void Seperate(int a[], int n);

int main()
{
    int n;
    int a[100];
    printf("Input n:");
    scanf("%d", &n);
    printf("Input numbers:");
    for (int i = 0; i < n; i++)
        scanf("%d", a + i);
    Seperate(a, n);
    return 0;
}

void Seperate(int a[], int n)
{
    int b[100], c[100];
    int even=0, odd = 0;
    for (int i = 0; i < n; i++)
    {
        if (*(a + i) % 2 != 0)
        {
            *(b + odd) = *(a + i);
            odd++;
        }
        else
        {
            *(c + even) = *(a + i);
            even++;
        }
    }
    for (int i = 0; i < odd - 1; i++)
        printf("%d,", *(b + i));
    printf("%d\n", *(b + odd-1));
    for (int i = 0; i < even - 1; i++)
        printf("%d,", *(c + i));
    printf("%d\n", *(c + even-1));
}

3子串判断

#include  <stdio.h>
#include  <string.h>

int IsSubString(char a[], char b[]);

int main()
{
    char a[80];
    char b[80];
    int flag;
    printf("Input the first string:");
    gets(a);
    printf("Input the second string:");
    gets(b);
    flag = IsSubString(a, b);
    if (flag)
        printf("Yes\n");
    else
        printf("No\n");
    return 0;
}

int IsSubString(char a[], char b[])
{
    for (int i = 0; *(a + i); i++)
    {
        if (*(a + i) == *b)
        {
            if (strncmp(a + i, b, strlen(b)) == 0)
                return 1;
        }
    }
    return 0;
}

4星期查找

#include  <stdio.h>
#include  <string.h>




int main()
{
    char* week[7] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
    char str[10];
    printf("Please enter a string:\n");
    gets(str);
    for (int i = 0; i < 7; i++)
    {
        if (strcmp(str, *(week + i)) == 0)
        {
            printf("%s is %d\n", str, i);
            return 0;
        }
            
    }
    printf("Not found!\n");
    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读