zoukankan      html  css  js  c++  java
  • Perl-晶晨2021届笔试题

    原题

    代码

    open IN, '<', 'name.txt';
    
    $line_count=0;
    while(<IN>){
    	$line_count++;  # 统计行数
    	chomp;
    	@line = split('s',$_);  # 将姓名和分数分解
    	$name = $line[0];
    	$grade = $line[1];
    	$hash{$name} = $hash{$name} + $grade;  # 求每个人的总分
    }
    
    $num_subject = $line_count/%hash;  # 求科目数
    print("num_subject: $num_subject
    ");  
    
    foreach $key (keys %hash){        # 求平均分
    	$hash{$key} = $hash{$key}/$num_subject;
    }
    
    foreach $key (sort keys %hash){  # 按姓名排序输出
    	print("$key $hash{$key}
    ");
    }
    
    print("------------------
    ");
    
    %temp_hash = %hash;
    for($i=0;$i<%hash;$i++){  # 按平均分排序输出, 遍历N次,每次取最大值输出,取出后删除该哈希,继续遍历找最大值
    	$max = 0;
    	$max_name = '';
    	foreach $key (keys %temp_hash){
    		if($temp_hash{$key}>$max) {
    			$max = $temp_hash{$key};
    			$max_name = $key;
    		}
    	}
    	print("$max_name $max
    ");
    	delete $temp_hash{$max_name};  # 删除最大值的哈希元素
    }
    
    close IN;
    

    输入输出

    输入

    maxiangyu 100
    wangtao 100
    maxiangyu 0
    wangtao 100
    

    输出

    num_subject: 2
    maxiangyu 50
    wangtao 100
    ------------------
    wangtao 100
    maxiangyu 50
    
  • 相关阅读:
    python爬取酷狗音乐
    python爬取酷我音乐
    排列组合+逆元模板
    python爬取QQVIP音乐
    一维数组的动态和
    买卖股票的最佳时机 II
    最佳买卖股票时机含冷冻期
    买卖股票的最佳时机
    子集
    最短无序连续子数组
  • 原文地址:https://www.cnblogs.com/wt-seu/p/13504324.html
Copyright © 2011-2022 走看看