zoukankan      html  css  js  c++  java
  • 杭电oj平台上的11页题目代码:hdu-page11 (2020~2029)

    //2020
    //思路:自己编写排序函数,用二重循环,将绝对值比较大的放到前面,具体实现就是将当前元素和后面的全部元素,选出后面最大的元素,将其放到前面
    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #define N 101
    int num[N];

    void my_sort(int a[], int n)
    {
    int i, j;
    int temp;
    for ( i = 0; i < n; i++)
    {
    for (j = i; j < n; j++)
    {
    //把绝对值大的数调到前面
    if (abs(a[j])>abs(a[i]))
    {
    temp = a[i ];
    a[i] = a[j];
    a[j] = temp;
    }
    }
    }
    }

    int main()
    {
    int n;
    int i;
    while (~scanf("%d",&n))
    {
    if (n == 0)
    break;
    for (i = 0; i < n; i++)
    {
    scanf("%d", &num[i]);
    }
    my_sort(num,n);
    for (i = 0; i < n; i++)
    {
    if (i != 0)
    printf(" ");
    printf("%d", num[i]);
    }
    printf(" ");
    }
    return 0;
    }

    //2021
    //思路:是为了给每位老师发工资的时候都不用老师找零钱,显然花大面额的才能使得准备的人民币张数最少
    #include<iostream>
    #define N 100
    int salary[N];
    using namespace std;
    int main()
    {
    int n;
    int i,j;
    int ans;
    int bill[6] = {100,50,10,5,2,1};
    while (cin>>n)
    {
    ans = 0;
    if (n==0)
    {
    break;
    }
    for ( i = 0; i < n; i++)
    {
    cin >> salary[i];
    for ( j = 0; j < 6; j++)
    {
    ans += salary[i] / bill[j]; salary[i] %= bill[j];
    }
    }
    cout << ans << endl;
    }
    return 0;
    }

    //2022
    //思路:用结构体表示一个人的信息,(坐标和分数),然后找出绝对值分数最高的人输出其信息
    #include<iostream>
    #include<math.h>
    #define N 100
    typedef struct person
    {
    int x;//行号
    int y;//列号
    int s;//分数
    }person;
    person p[N];

    using namespace std;
    int main()
    {
    int m, n;
    int i, j;
    int count;
    person max_p;//用来记录分数绝对值的人(结构体包括位置和分数)
    person temp_p;
    while (cin>>m>>n)
    {
    count = 0;
    max_p.s = 0;
    for (i = 1; i <= m; i++)
    {
    for ( j = 1; j <= n; j++)
    {
    cin >> p[count].s;
    p[count].x = i;
    p[count].y = j;
    if (abs(max_p.s)<abs(p[count].s))
    {
    max_p.s = p[count].s;
    max_p.x = p[count].x;
    max_p.y = p[count].y;
    }
    count++;
    }
    }
    cout << max_p.x << ' ' << max_p.y << ' ' << max_p.s << endl;
    }
    return 0;
    }

    //2023
    //思路:用二维数组,行号代表哪个人,列号指的是成绩
    #include<stdio.h>
    #define N 51
    #define M 6
    int num[N][M];
    double average_total_score[N];
    double average_object_score[M];
    int main()
    {
    int n, m;
    int i, j;
    double average1, average2;
    int sum;
    int count1;//用来统计各科成绩大于等于平均成绩的学生数量
    int count2;
    while (~scanf("%d%d",&n,&m))
    {
    count1 = 0;
    count2 = 0;
    for ( i = 1; i <= n; i++)
    {
    sum = 0;//用来记录第i个学生的总成绩
    average1 = 0;//用来记录第i个学生的平均成绩
    for ( j = 1; j <= m; j++)
    {
    scanf("%d", &num[i][j]);
    sum += num[i][j];
    }
    average1 = sum*1.0 / m;
    average_total_score[i] = 0;
    if (i!=1)
    {
    printf(" ");
    }
    printf("%.2lf", average1);
    }
    printf(" ");
    sum = 0;
    for ( j = 1; j <=m; j++)
    {
    average2 = 0;
    sum = 0;
    for ( i = 1; i <= n; i++)
    {
    sum += num[i][j];
    }
    average2 = 1.0*sum / n;//记录各科成绩
    average_object_score[j] = average2;
    if (j!=1)
    {
    printf(" ");
    }
    printf("%.2lf", average2);
    }
    printf(" ");
    for ( i = 1; i <= n; i++)
    {
    count2 = 0;
    for ( j = 1; j <= m; j++)
    {
    if (num[i][j]>=average_object_score[j])
    {
    count2++;
    }
    }
    if (count2==m)//说明第i个人的各科成绩都大于相应的科目成绩
    {
    count1++;//这第i个人要加到各科成绩均大于等于平均成绩的学生数量中
    }
    }
    printf("%d ",count1);
    }
    return 0;
    }

    //2024
    //注意点:scanf不能接受空格、制表符Tab、回车等;而gets能够接受空格、制表符Tab和回车等;
    #include<stdio.h>
    #include<string.h>
    #define N 100
    char str[N];
    int main()
    {
    int n;
    scanf("%d", &n);
    getchar();
    int len;
    int i;
    int count;//用来记录合法字符的个数
    while (n--)
    {
    len = 0;
    gets(str);
    len = strlen(str);
    count=0;
    if (str[0]>='0'&&str[0]<='9')
    {
    printf("no ");

    }
    else
    {
    for ( i = 0; i < len; i++)
    {
    if (str[i] == '_' || (str[i] >= 'a'&&str[i] <= 'z') || (str[i] >= 'A'&&str[i] <= 'Z') || (str[i] >= '0'&&str[i] <= '9'))
    {
    count++;
    }
    }
    if (count==len)
    {
    printf("yes ");
    }
    else
    {
    printf("no ");
    }
    }
    }

    return 0;
    }

    //2025
    #include<stdio.h>
    #include<string.h>
    #define N 1000
    char str[N];
    int pos[N];//该数组用来记录插入max的位置
    int main()
    {
    int i;
    int len;//用来记录pos数组的长度
    char max;
    while (gets(str))
    {
    max = '';
    len = 0;
    len = strlen(str);
    for ( i = 0; i < len; i++)
    {
    if (max<str[i])//找到最大的字母
    {
    max = str[i];
    }
    }
    for ( i = 0; i < strlen(str); i++)
    {
    printf("%c", str[i]);
    if (str[i]==max)
    {
    printf("(max)");
    }
    }
    printf(" ");
    //getchar();加了getchar()就wa了,删掉就对了
    }
    return 0;
    }

    //2026
    #include<stdio.h>
    #include<string.h>
    #define N 101
    char str[N];
    int isAlphabet(char a)
    {
    if ((a>='A'&&a<='Z')||(a>='a'&&a<='z'))
    {
    return 1;
    }
    else
    {
    return 0;
    }
    }
    int main()
    {
    int len;
    int i;
    while (gets(str))
    {
    len = strlen(str);
    //加这个的原因是下面的循环没有包括对str[0]的判断处理,故要加上
    if (str[0]!=' ')
    {
    str[0] = str[0] - 32;
    }
    for ( i = 1; i < strlen(str); i++)
    {
    if (str[i-1]==' '&&isAlphabet(str[i]))
    {
    str[i] = str[i] - 32;
    }
    }
    puts(str);
    }
    return 0;
    }

    //2027
    #include<stdio.h>
    #include<string.h>
    #define N 101
    char str[N];
    int count[6];//用来记录各种元音字母的个数
    int main()
    {
    int n;
    int i,j;
    int len;
    scanf("%d", &n);
    getchar();
    for ( i = 0; i < n ; i++)
    {
    gets(str);
    memset(count, 0, sizeof(count));
    len = strlen(str);
    for ( j = 0; j < len ; j++)
    {
    switch (str[j])
    {
    case 'a':count[0]++; break;
    case'e':count[1]++; break;
    case'i':count[2]++; break;
    case'o':count[3]++; break;
    case'u':count[4]++; break;
    default:
    break;
    }
    }
    if (i!=0)
    {
    printf(" ");
    }
    printf("a:%d ", count[0]);
    printf("e:%d ", count[1]);
    printf("i:%d ", count[2]);
    printf("o:%d ", count[3]);
    printf("u:%d ", count[4]);
    }
    return 0;

    }

    //2028
    #include<stdio.h>
    #include<string.h>
    #define N 101

    int gcd(int a, int b)
    {
    int temp;
    //比较大小的然后交换的这个步骤,好像没有关系,因为有还是没有都是ac了
    /*if (a<b)
    {
    temp = a;
    a = b;
    b = temp;
    }*/
    if (b==0)
    {
    return a;
    }
    return gcd(b, a%b);
    }

    int lcm(int a, int b)
    {
    // return a / gcd(a, b)* b;a*b会超出int的范围
    return a / gcd(a, b)* b ;
    }
    int main()
    {
    int a, b;
    int n;
    int i, j;
    int ans;
    int c;
    while (~scanf("%d",&n))
    {
    ans = 1;
    for (i = 0; i < n; i++)
    {
    scanf("%d", &c);
    ans = lcm(ans, c);
    }
    printf("%d ", ans);

    }
    return 0;
    }

    //2029
    #include<stdio.h>
    #include<string.h>
    #define N 101
    char str[N];
    int main()
    {
    int n;
    scanf("%d", &n);
    int len;
    int i;
    while (n--)
    {
    scanf("%s", str);
    len = strlen(str);
    //循环的时候,将字符第一个数和倒数第一个数比较
    for ( i = 0; i < len/2; i++)
    {
    if (str[i]!=str[len-1-i])
    {
    break;
    }
    }
    if (i >= len/2)
    {
    printf("yes ");
    }
    else
    {
    printf("no ");
    }
    }
    return 0;
    }

    一生有所追!
  • 相关阅读:
    Javascript图片预加载详解
    Canvas入门(3):图像处理和绘制文字
    CSS强制英文、中文换行与不换行 强制英文换行
    数组分隔成两个一组
    scrollview嵌套tableview
    审核被拒:1. 1 Safety: Objectionable Content ;3. 1.1 Business: Payments
    流程控制-用布尔值
    xcode代码提示没了
    sourceTree回退撤销commit
    iOS使用mask切割不规则图案
  • 原文地址:https://www.cnblogs.com/BlueBlue-Sky/p/8569895.html
Copyright © 2011-2022 走看看