前两题简单了..
3.最大距离(简单)
描述
给定一组点(x,y),求距离最远的两个点之间的距离。
输入
第一行是点数n(n大于等于2)
接着每一行代表一个点,由两个浮点数x y组成。
输出
输出一行是最远两点之间的距离。
使用cout << fixed << setprecision(4) << dis << endl;输出距离值并精确到小数点后4位。
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
int n,i;
double point[100][2];//100x2的二维数组存坐标
cin >> n;
for (i = 0; i < n; i++)
cin >> point[i][0] >> point[i][1];
double len[10000];//存两点距离
int k = 0;
for(i=0;i<n;i++)
for (int j = i; j < n; j++) {
len[k] = sqrt(pow(point[i][0] - point[j][0], 2) + pow(point[i][1] - point[j][1], 2));
k += 1;
}//算每一对点的距离,存进len[]
double max=len[0];
for(i=0;i<=k;i++){
if (len[i] > max)
max = len[i];
}//最大距离
cout <<fixed<<setprecision(4)<< max << endl;
return 0;
}
5.字符串插入(简单)
描述
有两个字符串str和substr,str的字符个数不超过10,substr的字符个数为3。(字符个数不包括字符串结尾处的’\0’。)将substr插入到str中ASCII码最大的那个字符后面,若有多个最大则只考虑第一个。
输入
输入包括若干行,每一行为一组测试数据,格式为
str substr
输出
对于每一组测试数据,输出插入之后的字符串。
#include <iostream>
#include<cstring>
using namespace std;
//用了cstring
int main()
{
char str[10], substr[3];
while (cin >> str >> substr) {//读输入
int i, maxnum = 0, len = strlen(str);
int max = str[0];
for (i = 0; i < len; i++) {
if (str[i] > max) {
max = str[i];
maxnum = i;
}
}//算最大ASCII及其序号
char s[13];
for (i = 0; i <= maxnum; i++)s[i] = str[i];
for (i = 0; i < 3; i++)s[maxnum+1+i] = substr[i];
for (i =0; i < len-maxnum-1; i++)s[maxnum+4+i] = str[maxnum+1+i];
//这写得有点乱..
for (i = 0; i < len + 3; i++)
cout << s[i];
cout << endl;
}
return 0;
}
期末题有一道简单计算器没A出来,也没找到逻辑错误,一度以为是正确的》。但OJ通不过,跳过了..测试下边缘值可能更容易找到错》。
那么这门课结束,开始下一项C++进阶
2017.5.29