您的位置:首页 > 编程语言 > C语言/C++

计算导论与C语言基础week12期末题

2017-05-29 18:07 351 查看
前两题简单了..

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言