二维数组应用

本文解析了HDU在线裁判平台上的三道经典题目:求平均成绩、杨辉三角及海选女主角问题。通过C++代码详细展示了如何解决这些问题,包括输入输出、计算平均数、构造杨辉三角和寻找最大值的位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.hdu-2023求平均成绩点击打开链接

2.hdu-2032杨辉三角点击打开链接

3.hdu-2022海选女主角点击打开链接

题解

1.

  1. #include<iostream>
  2. #include<stdio.h>
  3. using namespace std;
  4. int main()
  5. {
  6. int m,n,a[50][5],i,j,s1,s2,c[500],b[500],num=0,number=0;
  7. double d[500];
  8. while(cin>>n>>m)
  9. {
  10. for(i=0;i<n;i++)
  11. {
  12. s1=0;
  13. for(j=0;j<m;j++)
  14. {
  15. cin>>a[i][j];
  16. s1+=a[i][j];
  17. }
  18. b[i]=s1;
  19. }
  20. for(j=0;j<m;j++)
  21. {
  22. s2=0;
  23. for(i=0;i<n;i++)
  24. {
  25. s2+=a[i][j];
  26. }
  27. c[j]=s2;
  28. }
  29. for(i=0;i<n;i++)
  30. {
  31. if(i)
  32. printf("% .2f",b[i]*1.0/m);
  33. else
  34. printf("%.2f",b[i]*1.0/m);
  35. }
  36. cout<<endl;
  37. for(j=0;j<m;j++)
  38. {
  39. d[j]=c[j]*1.0/n;
  40. if(j)
  41. printf("% .2f",c[j]*1.0/n);
  42. else
  43. printf("%.2f",c[j]*1.0/n);
  44. }
  45. cout<<endl;
  46. for(i=0;i<n;i++)
  47. {
  48. num=0;
  49. for(j=0;j<m;j++)
  50. {
  51. if(a[i][j]>=d[j])
  52. num++;
  53. }
  54. if(num==m)
  55. number++;
  56. }
  57. cout<<number<<endl<<endl;
  58. number=0;
  59. }
  60. return 0;
  61. }2.
    1. #include<iostream>
    2. #include<stdio.h>
    3. using namespace std;
    4. int main()
    5. {
    6. int a[40][40]={0},i,j,n;
    7. while(cin>>n)
    8. {
    9. for(i=0;i<n;i++)
    10. a[i][0]=1;
    11. for(i=1;i<n;i++)
    12. {
    13. for(j=1;j<=i;j++)
    14. {
    15. a[i][j]=a[i-1][j-1]+a[i-1][j];
    16. }
    17. }
    18. for(i=0;i<n;i++)
    19. {
    20. for(j=0;j<=i;j++)
    21. {
    22. if(j==0)
    23. printf("%d",a[i][j]);
    24. else
    25. printf(" %d",a[i][j]);
    26. }
    27. cout<<endl;
    28. }
    29. cout<<endl;
    30. }
    31. return 0;
    32. }3.
      1. #include<iostream>
      2. #include<algorithm>
      3. #include<cmath>
      4. typedef long long ll;
      5. using namespace std;
      6. int main()
      7. {
      8. ll m,n,i,max,j,a[500][500],flag=0;
      9. while(cin>>m>>n)
      10. {
      11. flag=0;
      12. for(i=1;i<=m;i++)
      13. for(j=1;j<=n;j++)
      14. cin>>a[i][j];
      15. max=abs(a[1][1]);
      16. for(i=1;i<=m;i++)
      17. for(j=1;j<=n;j++)
      18. {
      19. if(abs(a[i][j])>=max)
      20. max=abs(a[i][j]);
      21. }
      22. for(i=1;i<=m;i++)
      23. {
      24. for(j=1;j<=n;j++)
      25. {
      26. if(max==abs(a[i][j]))
      27. {
      28. flag=1;
      29. cout<<i<<" "<<j<<" "<<a[i][j];
      30. cout<<endl;
      31. }
      32. if(flag)
      33. break;
      34. }
      35. if(flag)
      36. break;
      37. }
      38. }
      39. return 0;
      40. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值