計算機程式設計C++(第4周基礎練習)
阿新 • • 發佈:2018-11-19
計算機程式設計C++ MOOC
測試與作業C++基礎練習100題
##第四周基本練習
本週作業為陣列的基本練習
- 陣列元素反序輸出
#include "iostream" using namespace std; int main() { int n,a[100]; cin >> n; int i; for (i = 0; i < n; i++) { cin >> a[i]; } for (i = n - 1; i > 0; i--) { cout << a[i] << " "; } cout << a[i]; return 0; }
- 求陣列元素最大值
#include "iostream"
using namespace std;
int main()
{
int a,max;
cin >> a;
max = a;
while (a != -9999)
{
cin >> a;
if (max < a)
{
max = a;
}
}
cout << max;
return 0;
}
- 陣列指定區間的元素的最大、最小、總和和平均值
#include "iostream" using namespace std; int main() { int a[] = { -1, 15, -40, -180, 99, -122, -124, 27, 192, 128, -165, 95, 161, -138, -183, 51, 107, 39, -184, 113, -63, 9, 107, 188, -11, -13, 151, -52, 7, 6 }; int i, j,n,max,min,sum=0; double ave; cin >> i >> j; if (i < j && (i >= 0 && j <= 30)) { max = a[i]; min = a[i]; for (n = i; n < j; n++) { sum = sum + a[n]; if (a[n] > max) { max = a[n]; } if (a[n] < min) { min = a[n]; } } ave = sum / (j - i + 0.0); cout << max << " " << min << " " << sum << " " << ave << endl; } else { cout << 0 << " " << 0 << " " << 0 << " " << 0 << endl; } return 0; }
- 求矩陣每行元素最大值
#include "iostream" using namespace std; int main() { int n, m,a[20][20],i,j,max[20]; cin >> n >> m; for (i = 0; i < n;i++) { for (j = 0; j < m; j++) { cin >> a[i][j]; } } for (i = 0; i < n; i++) { max[i] = a[i][0]; for (j = 0; j < m; j++) { if (a[i][j]>max[i]) { max[i] = a[i][j]; } } cout << max[i] << endl; } return 0; }
- 求矩陣每列元素最大值
#include "iostream"
using namespace std;
int main()
{
int n, m, a[20][20], i, j, max[20];
cin >> n >> m;
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
cin >> a[i][j];
}
}
for (i = 0; i < m; i++)
{
max[i] = a[0][i];
for (j = 0; j < n; j++)
{
if (a[j][i]>max[i])
{
max[i] = a[j][i];
}
}
}
for (i = 0; i < m-1; i++)
{
cout << max[i] << " ";
}
cout << max[i];
return 0;
}
- 計算向量的和
#include "iostream"
using namespace std;
int main()
{
int n, a[100], b[100], c[100];
cin >> n;
int i;
for (i = 0; i < n; i++)
{
cin >> a[i];
}
for (i = 0; i < n; i++)
{
cin >> b[i];
c[i] = a[i] + b[i];
}
for (i = 0; i < n-1; i++)
{
cout << c[i] <<" ";
}
cout << c[i] << endl;
return 0;
}
- 矩陣向量的內積
#include "iostream"
using namespace std;
int main()
{
int n, a[100], b[100], mul=0;
cin >> n;
int i;
for (i = 0; i < n; i++)
{
cin >> a[i];
}
for (i = 0; i < n; i++)
{
cin >> b[i];
mul = mul + a[i] * b[i];
}
cout << mul << endl;
return 0;
}
- 計算向量的範數
#include "iostream"
#include <cmath>
using namespace std;
int main()
{
int n, i;
double dis, a[100],sum = 0;
cin >> n;
for (i = 0; i < n; i++)
{
cin >> a[i];
sum = sum + a[i] * a[i];
}
dis = sqrt(sum);
cout << dis << endl;
return 0;
}
- 計算向量的歐氏距離
#include "iostream"
#include <cmath>
using namespace std;
int main()
{
int n, i;
double dis, a[100],b[100],sum = 0;
cin >> n;
for (i = 0; i < n; i++)
{
cin >> a[i];
}
for (i = 0; i < n; i++)
{
cin >> b[i];
sum = sum + (b[i] - a[i])*(b[i] - a[i]);
}
dis = sqrt(sum);
cout << dis << endl;
return 0;
}
- 矩陣求和
#include "iostream"
using namespace std;
int main()
{
int n,m,i,j;
double a[100][100],b[100][100],c[100][100];
cin >> n >> m ;
if (n > 0 || m > 0)
{
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
cin >> a[i][j];
}
}
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
cin >> b[i][j];
c[i][j] = a[i][j] + b[i][j];
}
}
for (i = 0; i < n; i++)
{
for (j = 0; j < m-1; j++)
{
cout << c[i][j]<<" ";
}
cout << c[i][j] << endl;
}
}
return 0;
}
- 輸入字串,求長度
#include "iostream"
#include <cstring>
using namespace std;
int main()
{
char sen[100];
int len;
cin.getline(sen, 100);
len = strlen(sen);
cout << len << endl;
return 0;
}
- 統計字串中大寫字母的數量
#include "iostream"
#include "cstring"
using namespace std;
int main()
{
char sen[200];
int n=0,i=0;
cin.getline(sen, 200);
while (sen[i] != '\0')
{
if (sen[i] >= 'A'&&sen[i] <= 'Z')
n++;
i++;
}
cout << n << endl;
return 0;
}
- 複製字串
#include "iostream"
#include "cstring"
using namespace std;
int main()
{
char sen_1[100],sen_2[100];
int i = 0;
cin.getline(sen_1, 200);
while (sen_1[i] != '\0')
{
sen_2[i] = sen_1[i];
i++;
}
sen_2[i] = sen_1[i];
i = 0;
while (sen_2[i] != '\0')
{
cout << sen_2[i];
i++;
}
return 0;
}
- 字串逆序
#include "iostream"
#include "cstring"
using namespace std;
int main()
{
char s[100],tmp[100];
int i = 0,n=0;
cin.getline(s, 100);
while (s[i] != '\0')
{
tmp[i] = s[i];
i++;
n++;
}
for (i = 0; i < n;i++)
{
s[i] = tmp[n - i-1];
cout << s[i];
}
return 0;
}
- 定義表示平面座標點的結構體計算兩點距離
#include "iostream"
#include "cmath"
using namespace std;
struct Point
{
double x, y;
};
int main()
{
Point a, b;
double dis;
cin >> a.x >> a.y;
cin >> b.x >> b.y;
dis = sqrt((a.x - b.x)*(a.x - b.x) + (a.y - b.y)*(a.y - b.y));
cout << dis<<endl;
return 0;
}
以上為第四次基本練習。