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
    
  • 相关阅读:
    回调函数(C语言)
    main函数的参数(一)
    术语,概念
    [LeetCode] Invert Binary Tree
    关于overload和override
    第一个只出现一次的字符
    Manacher算法----最长回文子串
    C++对象模型
    回文判断
    字符串转换成整数
  • 原文地址:https://www.cnblogs.com/wt-seu/p/13504324.html
Copyright © 2011-2022 走看看