• 杭电oj2022-2030


    2022 海选女主角

     1 #include <stdio.h>
     2 #include <math.h>
     3  
     4 int main(){
     5     int s[50][50];
     6     int n,m,x,y,z,i,j;
     7     while(scanf("%d %d",&m,&n)!=EOF){
     8         for(x=1;x<=m;x++){
     9             for(y=1;y<=n;y++){scanf("%d",&s[x][y]);}
    10         }
    11         z =  0;
    12         for(x=1;x<=m;x++){
    13             for(y=1;y<=n;y++){
    14                 if(z<abs(s[x][y])){i = x;j = y;z = abs(s[x][y]);}
    15             }
    16         }
    17         printf("%d %d %d
    ",i,j,s[i][j]);
    18     }
    19 }

    2023  求平均成绩

     1 #include <stdio.h>
     2  
     3 int main(){
     4     int s[51][10];
     5     int n,m,i,j,k,flag,count;
     6     double sum,c[50];
     7     while(scanf("%d %d",&n,&m)!=EOF){
     8         k=0;count=0;
     9         for(i=0;i<n;i++){
    10             for(j=0;j<m;j++){scanf("%d",&s[i][j]);}
    11         }
    12         
    13         for(i=0;i<n;i++){
    14             sum = 0;
    15             for(j=0;j<m;j++){
    16                 sum += s[i][j];
    17             }
    18             if(i==n-1){printf("%.2lf
    ",sum/m);}
    19             else{printf("%.2lf ",sum/m);}
    20         }
    21         for(i=0;i<m;i++){
    22             sum = 0;
    23             for(j=0;j<n;j++){
    24                 sum += s[j][i];
    25             }
    26             c[k] = sum/n;
    27             k++;
    28             if(i==m-1){printf("%.2lf
    ",sum/n);}
    29             else{printf("%.2lf ",sum/n);}
    30         }
    31         for(i=0;i<n;i++){
    32             flag = 0;
    33             for(j=0;j<m;j++){
    34                 if(s[i][j]<c[j]){flag++;}
    35             }
    36             if(flag==0){count++;}
    37         }
    38         printf("%d
    
    ",count);
    39     }
    40     
    41 }

    2024  C语言合法标识符

     1 #include <stdio.h>
     2 #include <math.h>
     3  
     4 int main(){
     5     char s[51];
     6     int n,len,i,flag;
     7     while(scanf("%d",&n)!=EOF){
     8         getchar();
     9         while(n--){
    10             gets(s);
    11             len = strlen(s);
    12             if((s[0]=='_')||(s[0]>='a'&&s[0]<='z')||(s[0]>='A'&&s[0]<='Z')){
    13                 flag = 0;
    14                 for(i=1;i<len;i++){
    15                     if((s[i]=='_')||(s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')||(s[i]>='0'&&s[i]<='9')){
    16                         continue;
    17                     }else{flag++;break;}
    18                 }
    19                 if(flag==0){printf("yes
    ");}
    20                 else{printf("no
    ");}
    21             }else{printf("no
    ");}
    22 
    23         }
    24     }
    25     
    26 }

    2025  查找最大元素

     1 #include <stdio.h>
     2 #include <string.h>
     3  
     4 int main(){
     5     char s[101],m;
     6     int i,len;
     7     while(gets(s)!=NULL){
     8         len = strlen(s);
     9         m = 'a';
    10         for(i=0;i<len;i++){
    11             if(s[i]>=m){m = s[i];}
    12         }
    13         for(i=0;i<len;i++){
    14             printf("%c",s[i]);
    15             if(s[i]==m){printf("(max)");}
    16         }
    17         printf("
    ");
    18     }
    19 }

    这题有个坑,输出格式问题:

    while(gets(str)!=NULL)                    NULL返回值对应的是char
    while(scanf("%d",&x)!=EOF)         EOF返回值对应却是int

    2026  首字母变大写

     1 #include <stdio.h>
     2 #include <string.h>
     3  
     4 int main(){
     5     char s[101];
     6     int i,len;
     7     while(gets(s)!=NULL){
     8         len = strlen(s);
     9         s[0] -= 32;
    10         for(i=1;i<len;i++){
    11             if(s[i]==' '){
    12                 s[i+1] -= 32;
    13             }
    14         }
    15         for(i=0;i<len;i++){
    16             printf("%c",s[i]);
    17         }
    18         printf("
    ");
    19     }
    20 }

    2027  统计元音

     1 #include <stdio.h>
     2 #include <string.h>
     3  
     4 int main(){
     5     char s[101],m;
     6     int n,i,j,len,s1[10];
     7     while(scanf("%d",&n)!=EOF){
     8         getchar();
     9         for(i=0;i<n;i++){
    10             gets(s);
    11             len = strlen(s);
    12             s1[0]=s1[1]=s1[2]=s1[3]=s1[4]=0;
    13             for(j=0;j<len;j++){
    14                 if(s[j]=='a'){s1[0]++;}
    15                 if(s[j]=='e'){s1[1]++;}
    16                 if(s[j]=='i'){s1[2]++;}
    17                 if(s[j]=='o'){s1[3]++;}
    18                 if(s[j]=='u'){s1[4]++;}
    19             }
    20             printf("a:%d
    e:%d
    i:%d
    o:%d
    u:%d
    ",s1[0],s1[1],s1[2],s1[3],s1[4]);
    21             if(i!=n-1){printf("
    ");}
    22         
    23         }
    24         
    25     }
    26 }

    2028  Lowest Common Multiple Plus

     1 #include <stdio.h>
     2 
     3 int gcd(int x,int y){  //求x,y的最大公约数
     4     if(y==0){return x;}
     5     else{return gcd(y,x%y);}
     6 }
     7  
     8 int main(){
     9     int a,b,n,i;
    10     while(scanf("%d",&n)!=EOF){
    11         scanf("%d",&a);
    12         for(i=1;i<n;i++){
    13             scanf("%d",&b);
    14             a = a*b/gcd(a,b);
    15         }
    16         printf("%d
    ",a);
    17     }
    18 }

    2029  Palindromes _easy version

     1 #include <stdio.h>
     2 #include <string.h>
     3  
     4 int main(){
     5     int n,i,len,flag;
     6     char s[100];
     7     while(scanf("%d", &n)!=EOF){
     8         getchar();
     9         while(n--){
    10             gets(s);
    11             len = strlen(s);
    12             flag=0;
    13             for(i=0;i<len;i++){
    14                 if(s[i]!=s[len-i-1]){flag=1;break;}
    15                 
    16             }
    17             if(flag==0){printf("yes
    ");}
    18             else{printf("no
    ");}
    19         }
    20     }
    21 }

    2030  汉字统计

     1 #include <stdio.h>
     2 #include <string.h>
     3  
     4 int main(){
     5     int n,i,len,flag;
     6     char s[1000];
     7     while(scanf("%d", &n)!=EOF){
     8         getchar();
     9         while(n--){
    10             gets(s);
    11             len = strlen(s);
    12             flag = 0;
    13             for(i=0;i<len;i++){
    14                 if(s[i]<0){flag++;}
    15             }
    16             printf("%d
    ",flag/2);
    17         }
    18     }    
    19 }

    注:

    1—— 一个汉字在字符串中是以两个负的字符形式存储,所以本题只要把字符串中负字符的个数找出来,再除以2 就OK了。
    
    2——汉字机内码在计算机的表达方式的描述是,使用二个字节,每个字节最高位一位为1。 计算机中, 补码第一位是符号位, 1 表示为 负数, 
    所以 汉字机内码的每个字节表示的十进制数都是负数
  • 相关阅读:
    创建异步Web服务
    MCAD考试计划
    微软面试题
    Reborn
    Qt项目注意事项
    在ASP.Net中两种利用CSS实现多界面
    为ASP.NET控件添加常用的JavaScript操作
    用Split函数分隔字符串
    Microsoft .NET Pet Shop 4.0
    搞定QString,string,char*,CString的互转
  • 原文地址:https://www.cnblogs.com/Ragd0ll/p/10424373.html
Copyright © 2020-2023  润新知