杭电oj2021-2030参考代码-C语言

2021 发工资咯:)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int main()
{

int n,sum,i;
int salary[100];
while(scanf("%d",&n)!=EOF)
{
    if(n==0)
        break;
    sum = 0;
    for(i=0; i<n; i++)//输入数据
    {
        scanf("%d",&salary[i]);
        while(salary[i]>0)//处理数据
        {
            if(salary[i]/100>0)
            {
                sum += salary[i]/100;
                salary[i] = salary[i]%100;
            }
            else if(salary[i]/50>0)
            {
                sum += salary[i]/50;
                salary[i] = salary[i]%50;
            }
            else if(salary[i]/10>0)
            {
                sum += salary[i]/10;
                salary[i] = salary[i]%10;
            }
            else if(salary[i]/5>0)
            {
                sum += salary[i]/5;
                salary[i] = salary[i]%5;
            }
            else if(salary[i]/2>0)
            {
                sum += salary[i]/2;
                salary[i] = salary[i]%2;
            }
            else
            {
                sum += salary[i];
                salary[i] = 0;
            }
        }
    }
    printf("%d\n",sum);
}   
return 0;

}

------------------------------------------------------------------------------------------

2022 海选女主角

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main()
{

//接收数据
int m,n,x,y,i,j;
double num,fabs_max;//**
while(scanf("%d%d",&m,&n)!=EOF)
{
    x = y = 1;
    fabs_max = 0;
    for(i=1; i<=m; i++)
    {
        for(j=1; j<=n; j++)
        {
            scanf("%lf",&num);//**
            if(fabs(num)>fabs(fabs_max))
            {
                fabs_max = num;
                x = i;
                y = j;
            }
        }
    }
    //打印结果
    printf("%d %d %.0lf\n",x,y,fabs_max);//**
    //printf("%d",abs(-2147483648));// 结果为0
}   
return 0;

}

------------------------------------------------------------------------------------------

2023 求平均成绩

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{

int n,m,i,j,count,flag;
double score[50][5];
double course[5];
double sum_person,sum_course,avg_person,avg_course;
while(scanf("%d%d",&n,&m)!=EOF)
{       
    for(i=0; i<n; i++)//输入数据
    {
        for(j=0; j<m; j++)
        {
            scanf("%lf",&score[i][j]);
        }           
    }
    //输出每个人课程的平均成绩==每个人的总成绩/课程总数
    for(i=0; i<n; i++)
    {
        sum_person = 0;
        for(j=0; j<m; j++)//每行相加
        {
            sum_person += score[i][j];//每个人的总成绩
        }
        avg_person = sum_person/m;
        printf("%.2f",avg_person);
        if(i<n-1)
            printf(" ");
    }
    printf("\n");
    //输出每门课程的平均成绩==该门课程所有人的分数之和/总人数
    for(j=0; j<m; j++)
    {
        sum_course = 0;
        for(i=0; i<n; i++)//每列相加
        {
            sum_course += score[i][j];//每个人的总成绩
        }
        avg_course = sum_course/n;
        course[j] = avg_course;//存放课程的平均成绩
        //if(score)
        printf("%.2f",avg_course);
        if(j<m-1)
            printf(" ");
    }
    printf("\n");
    //计算该班级中各科成绩均大于等于平均成绩的学生数量
    count = 0;
    for(i=0; i<n; i++)
    {
        flag = 1;
        for(j=0; j<m; j++)
        {
            if(course[j]>score[i][j])
                flag =0;
        }
        if(flag==1)
            count++;
    }
    printf("%d\n",count);
    printf("\n");
}
return 0;

}

------------------------------------------------------------------------------------------

2024 C语言合法标识符

#define _CRT_SECURE_NO_WARNINGS 1

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

int main()
{

int n,i,j,flag,len;
char ch[50];
while(scanf("%d",&n)!=EOF)
{   
    getchar();
    for(i=0; i<n; i++)
    {   
        //scanf("%s",ch);
        gets(ch);
        len = strlen(ch);
        flag = 0;
        if((ch[0]>='a'&&ch[0]<='z')||ch[0]=='_'||(ch[0]>='A'&&ch[0]<='Z'))
        {
            for(j=1; j<len; j++)
            {
                if((ch[j]>='a'&&ch[j]<='z')||
                    ch[j]=='_'||
                    (ch[j]>='A'&&ch[j]<='Z')||
                    (ch[j]>='0'&&ch[j]<='9'))
                {
                    flag = 1;
                    continue;
                }
                else
                {
                    flag = 0;
                    break;
                }                       
            }               
        }
        if(flag==1)
                //printf("yes\n");
                puts("yes");
        else
                printf("no\n");
    }       
}
return 0;

}

------------------------------------------------------------------------------------------

2025 查找最大元素

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <string.h>
int main()
{

int i,len;
char c_max;
char ch[256];
while(scanf("%s",&ch)!=EOF)
{
    len = strlen(ch);
    c_max = ch[0];
    //找出最大字母
    for(i=0; i<len; i++)
    {
        if(ch[i]>c_max)
            c_max = ch[i];
    }
    //输出
    for(i=0; i<len; i++)
    {
        putchar(ch[i]);
        if(ch[i]==c_max)
            printf("(max)");
    }
    printf("\n");
}
return 0;

}

------------------------------------------------------------------------------------------

2026 首字母变大写

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{

int i;
char ch[100] = " ";
while(gets(ch+1))
{
    for(i=1; ch[i]; i++)
    {
        putchar((isalpha(ch[i])&&ch[i-1]==' ') ? toupper(ch[i]):ch[i]);
    }
    //printf("\n");
    putchar('\n');
}
return 0;

}

------------------------------------------------------------------------------------------

2027 统计元音

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{

int j,n,num1,num2,num3,num4,num5;
char ch[100];
scanf("%d%*c",&n);
while(n--)
{
    num1=num2=num3=num4=num5=0;
    gets(ch);//获取字符串
    for(j=0; j<strlen(ch); j++)//统计元音
    {
        //大写的元音先转化成小写
        if(tolower(ch[j])=='a')
            num1++;
        else if(tolower(ch[j])=='e')
            num2++;
        else if(tolower(ch[j])=='i')
            num3++;
        else if(tolower(ch[j])=='o')
            num4++;
        else if(tolower(ch[j])=='u')
            num5++;
    }
    printf("a:%d\n",num1);//输出元音个数
    printf("e:%d\n",num2);
    printf("i:%d\n",num3);
    printf("o:%d\n",num4);
    printf("u:%d\n",num5);
    if(n)
        //printf("\n");
        putchar('\n');
}
return 0;

}

------------------------------------------------------------------------------------------

2028 Lowest Common Multiple Plus

#define _CRT_SECURE_NO_WARNINGS 1
求最小公倍数
#include <stdio.h>

typedef unsigned long UL;

UL gcd(UL u,UL v)//求最大公约数
{

int remainder;
while(remainder=u%v)
{
    u = v;
    v = remainder;
}
return v;

}
UL lcm(UL u,UL v)//求最小公倍数
{

return u*v/gcd(u,v);

}
int main()
{

int n,i;
UL num,res;
while(scanf("%d",&n)!=EOF)
{
    res = 1;//考虑n=1的情况
    for(i=0; i<n; i++)
    {
        scanf("%lu",&num);
        res = lcm(res,num);
    }
    printf("%lu\n",res);
}
return 0;

}

------------------------------------------------------------------------------------------

2029 Palindromes _easy version

#define _CRT_SECURE_NO_WARNINGS 1
//“回文串”

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

int main()
{

int n,i,len,flag;
char ch[100];
while(scanf("%d",&n)!=EOF)
{
    for(i=0; i<n; i++)
    {
        char* start;//设置指向左边字符的指针
        char* end;//设置指向右边字符的指针
        scanf("%s",&ch);
        start = ch;
        len = strlen(ch);
        end = ch+len-1;
        flag = 1;//是否是回文串标志
        while(start<end)
        {
            if(*start!=*end)
                flag = 0;
            start++;
            end--;
        }
        if(flag==1)
            printf("yes\n");
        else
            printf("no\n");
    }
}
return 0;

}

------------------------------------------------------------------------------------------

2030 汉字统计

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{

//汉字机内码在计算机中,使用2个字节,每个字节二进制最高位为1
//而计算机中二进制为补码形式,最高位为1表示负数
//统计字符串中的小于0的字符个数,再/2即可得到汉字的数量
int n,i,count;
char ch;
while(scanf("%d",&n)!=EOF)
{
    getchar();
    for(i=0; i<n; i++)
    {
        count = 0;
        while((ch=getchar())!='\n')
        {
            if(ch<0)
                count++;
        }
        printf("%d\n",count/2);
    }
}
return 0;

}

猜你喜欢

转载自blog.51cto.com/14221754/2648839