程序設計與算法 第五週測驗

1:與指定數字相同的數的個數

#include <iostream>
using namespace std;
#define MAX_NUM 100
int main()
{
  int N, n[MAX_NUM]={0}, m, cnt=0;
  cin >> N;
  for (int i=0;i<N;i++)
    cin >> n[i];
  cin >> m;
  for (int i=0;i<N;i++)
    if(n[i]==m)
      cnt++;
  cout << cnt << endl;
  return 0;
}

2:陶陶摘蘋果

#include <iostream>
using namespace std;
#define NUM 10
#define SEAT 30
int main()
{
  int apple[NUM]={0}, tao=0, cnt=0;
  for (int i=0;i<NUM;i++)
    cin >> apple[i];
  cin >> tao;
  for (int i=0;i<NUM;i++)
    if(apple[i]<=tao+SEAT)
      cnt++;
  cout << cnt << endl;
  return 0;
}

3:年齡與疾病

#include <iostream>
#include <iomanip>
using namespace std;
#define GROUP 4
int main()
{
  int n, a, age[GROUP]={0}, age_sum=0;
  cin >> n;
  for (int i=0;i<n;i++)
  {
    cin >> a;
    if (0 <= a && a <= 18)
      age[0]++;
    else if (19 <= a && a <= 35)
      age[1]++;
    else if (36 <= a && a <= 60)
      age[2]++;
    else
      age[3]++;
  }
  age_sum = age[0]+age[1]+age[2]+age[3];
  cout << fixed << showpoint << setprecision(2);
  for (int i=0;i<GROUP;i++)
  {
    if(age_sum>0)
      cout << 100.0*age[i]/age_sum << "%" << endl;
    else
      cout << "0.00%" << endl;
  }
  return 0;
}

4:校門外的樹

#include <iostream>
using namespace std;
#define NUM 10000
int main()
{
  int L, M, r[NUM]={0}, begin, end, cnt=0;
  cin >> L >> M;
  for (int i=0;i<=L;i++)
    r[i]=1;
  for (int i=0;i<M;i++)
  {
    cin >> begin >> end;
    for (int j=begin;j<=end;j++)
      r[j]=0;
  }
  for (int i=0;i<=L;i++)
    if(r[i]==1)
      cnt++;
  cout << cnt << endl;
  return 0;
}

5:計算鞍點

#include <iostream>
using namespace std;
#define NUM 5
int main()
{
  int m[NUM][NUM]={0}, t, maxj[NUM]={0}, mini, found=0;
  for (int i=0;i<NUM;i++)
  {
    for (int j=0;j<NUM;j++)
    {
      cin >> m[i][j];
      if (j==0||m[i][j]>t)
      {
        t=m[i][j];
        maxj[i]=j;
      }
    }
  }
  for (int j=0;j<NUM;j++)
  {
    for (int i=0;i<NUM;i++)
    {
      if(i==0||m[i][j]<t)
      {
        t=m[i][j];
        mini=i;
      }
    }
    if (maxj[mini]==j)
    {
      found++;
      cout << mini+1 << " " << j+1 << " " << m[mini][j] << endl;
    }
  }
  if (found==0)
    cout << "not found" << endl;
  return 0;
}

6:圖像模糊處理

#include <iostream>
using namespace std;
#define NUM 100
int main()
{
  int n, m, x[NUM][NUM];
  cin >> n >> m;
  for (int i=0;i<n;i++)
    for (int j=0;j<m;j++)
      cin >> x[i][j];
  for (int i=0;i<n;i++)
  {
    for (int j=0;j<m;j++)
    {
      if (j!=0)
        cout << " ";
      if (i==0||j==0||i==n-1||j==m-1)
      {
        cout << x[i][j];
      }
      else
      {
        int s = x[i][j]+x[i-1][j]+x[i+1][j]+x[i][j-1]+x[i][j+1];
        int t = s/5;
        if (s%5<=2)
          cout << t;
        else
          cout << t+1;
      }
    }
    cout << endl;
  }
  return 0;
}

7:矩陣轉置

#include <iostream>
using namespace std;
#define NUM 100
int main()
{
  int n, m, x[NUM][NUM];
  cin >> n >> m;
  for (int i=0;i<n;i++)
    for (int j=0;j<m;j++)
      cin >> x[i][j];
  for (int j=0;j<m;j++)
  {
    for (int i=0;i<n;i++)
    {
      if (i!=0)
        cout << " ";
      cout << x[i][j];
    }
    cout << endl;
  }
  return 0;
}

-eof-

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章