解题思路:
注意事项:
参考代码:
import java.util.Scanner; public class T1832 { public static int[] getRange(String s){ int []a = {0,0,0,0,0}; s = s.substring(4, s.length()); Scanner sc = new Scanner(s); sc.useDelimiter("[,:)]"); for(int i = 1;i<=4;i++){ a[i] = sc.nextInt(); } sc.close(); return a; } public static double getValue(String [][]a,String s){ double ans =0.0; //求和 if(s.contains("U")){ int []t = getRange(s); for(int i_ = t[1];i_<=t[3];i_++){ for(int j_ = t[2];j_<=t[4];j_++){ ans += getValue(a,a[i_][j_]); } } } //求平均值 else if(s.contains("V")){ int []t = getRange(s); for(int i_ = t[1];i_<=t[3];i_++){ for(int j_ = t[2];j_<=t[4];j_++){ ans += getValue(a,a[i_][j_]); } } int n = (t[4]-t[2]+1)*(t[3]-t[1]+1); ans /= n; } //求标准差 else if(s.contains("T")){ int []t = getRange(s); int n = (t[4]-t[2]+1)*(t[3]-t[1]+1); double avg = 0; for(int i_ = t[1];i_<=t[3];i_++){ for(int j_ = t[2];j_<=t[4];j_++){ avg += getValue(a,a[i_][j_]); } } avg /= n; for(int i_ = t[1];i_<=t[3];i_++){ for(int j_ = t[2];j_<=t[4];j_++){ ans += (getValue(a,a[i_][j_]) - avg)*(getValue(a,a[i_][j_]) - avg); } } ans = Math.sqrt(ans/n); } else{ ans = Double.parseDouble(s); } return ans; } public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNext()){ int n = in.nextInt(),m = in.nextInt(); String [][]a = new String[n+1][m+1]; for(int i = 1;i<=n;i++){ for(int j = 1;j<=m;j++){ a[i][j] = in.next(); } } for(int i = 1;i<=n;i++){ for(int j = 1;j<m;j++){ System.out.printf("%.2f ",getValue(a,a[i][j])); } System.out.printf("%.2f%n",getValue(a,a[i][m])); } } in.close(); } }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:687 |
C语言考试练习题_保留字母 (C语言代码)浏览:686 |
C语言训练-谁家孩子跑最慢* (C语言代码)浏览:1508 |
C语言程序设计教程(第三版)课后习题12.1 (C语言代码)浏览:982 |
C语言训练-排序问题<1> (C语言代码)浏览:1350 |
川哥的吩咐 (C++代码)浏览:1010 |
不容易系列 (C语言代码)浏览:666 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:532 |
WU-格式化数据输出 (C++代码)浏览:1197 |
【计算球体积】 (C语言代码)浏览:1101 |