您的位置:首页 > 其它

哈尔工业大学上机题(n诺1349-1363)

2020-04-05 07:25 127 查看

1349 互换最大最小数
输入一个数n,然后输入n个数值各不相同,调换数组中最大和最小的两个数,然后输出。

#include <iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#define N 100
using namespace std;

int a[100];
int main()
{
int n, min, max,temp;
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
max = min = 0;
for (int i = 0; i < n; i++) {
if (a[i] > a[max])
max = i;
if (a[i] < a[min])
min = i;
}
temp = a[min];
a[min] = a[max];
a[max] = temp;
for (int i = 0; i < n; i++)
cout << a[i] << " ";
cout << endl;
return 0;
}

1350 找X
输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。

#include <iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#define N 100
using namespace std;

int a[100];
int main()
{
int n, temp;
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
cin >> temp;
int i;
for (i = 0; i < n; i++)
{
if (temp == a[i]) {
cout << i << endl;
break;
}
}
if (i == n)
cout << "-1" << endl;
return 0;
}

1351 判断三角形类型

// ConsoleApplication11.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#include<cmath>

using namespace std;

int main()
{
int e[3];
while (cin >> e[0] >> e[1] >> e[2])
{
sort(e, e + 3);
double result = pow(e[0], 2) + pow(e[1], 2) - pow(e[2], 2);
if (result == 0)
cout << "直角三角形" << endl;
else if (result > 0)
cout << "锐角三角形" << endl;
else
cout << "钝角三角形" << endl;
}
return 0;
}

1352 众数
输入20个数,每个数都在1-10之间,求1-10中的众数(众数就是出现次数最多的数,如果存在一样多次数的众数,则输出权值较小的那一个)。

#include <iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#include<cmath>

using namespace std;

int main()
{
int a[11] = { 0 };
int temp;
for (int i = 1; i <= 20; i++)
{
cin >> temp;
a[temp]++;
}
int max = 0, x = 0;
int i;
for ( i = 1; i <= 10; i++)
{
if (a[i] > max)
{
max = a[i];
x = i;
}
}
cout << x << endl;
return 0;
}

1353 求最大公约数
输入两个正整数,求其最大公约数。

#include <iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#include<cmath>

using namespace std;

int gcd(int a, int b)
{
if (a%b == 0)
return b;
else
return gcd(b, a%b);
}
int main()
{
int a, b;
while (cin >> a >> b)
{
if (a > b)
{
int t = a;
a = b;
b = t;
}
cout << gcd(a, b) << endl;
}
return 0;
}

1354 完数
求1-n内的完数,所谓的完数是这样的数,它的所有因子相加等于它自身,比如6有3个因子1,2,3,1+2+3=6,那么6是完数。即完数是等于其所有因子(除了它自己)相加和的数。

#include<bits/stdc++.h>
using namespace std;

bool fun(int n)
{
int sum = 0, cnt = 0;
for (int i = 1; i <= n / 2; i++)
{
if (n%i == 0)
{
sum = sum + i;
}
}
if (sum == n)
return true;
return false;
}

int main()
{
int n;
while(cin >> n)
{
cout << "6";
for (int i = 7; i <= n; i++)
if (fun(i))
cout <<" "<< i ;
cout << endl;
}
return 0;
}

1355 素数的判定
给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。

#include <iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#include<cmath>

using namespace std;

bool isprime(int n)
{
int i;
if (n <= 1)
return false;
for (i = 2; i <= sqrt(n); i++)
{
if (n%i == 0)
return false;
}
return true;
}
int main()
{
int n;
while (cin >> n)
{
if (isprime(n))
cout << "yes" << endl;
else
cout << "no" << endl;
}
return 0;
}

1356 字符串连接
不用strcat 函数,自己编写一个字符串链接函数MyStrcat(char dstStr[],charsrcStr[])

#include <iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#include<cmath>

using namespace std;

char *MyStrcat(char a[], char b[]) {
char *p = a;
char *s = b;
while (*p != 0)
p++;
while (*s != 0)
{
*p = *s;
p++;
s++;
}
*p = '\0';
return a;
}
int main()
{
char a[100], b[100], *c;
while (cin >> a >> b)
{
c = MyStrcat(a, b);
cout << c << endl;
}
return 0;
}

1357 百万富翁问题
一个百万富翁遇到一个陌生人,陌生人找他谈了一个换钱的计划。该计划如下:我每天给你10 万元,你第一天给我1 分钱,第二天2 分钱,
第三天4 分钱……
这样交换 30 天后,百万富翁交出了多少钱?陌生人交出了多少钱?(注意一个是万元,一个是分)

#include <bits/stdc++.h>
using namespace std;
int main()
{
int x=300;
long long y=0;
for(int i=0;i<30;i++){
y+=pow(2,i);
}
cout<<x<<" "<<y<<endl;
return 0;
}

1358 数组逆置
输入一个字符串,长度小于等于200,然后将数组逆置输出。

#include <iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#include<cmath>

using namespace std;

int main()
{
char a[200];
int n;
while (cin >> a)
{
for (int i = strlen(a) - 1; i >= 0; i--)
cout << a[i];
cout << endl;
}
return 0;
}

1359 数字阶梯求和
给定a和n,计算a+aa+aaa+a…a(n个a)的和。

#include <iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#include<cmath>

using namespace std;

int main()
{
int a, n;
long sum = 0;
cin >> a >> n;
long t = a;
for (int i = 1; i <= n; i++)
{
sum += t;
t = t * 10 + a;
}
cout << sum << endl;
return 0;
}

1360 字符串内排序
输入一个字符串,长度小于等于200,然后将输出按字符顺序升序排序后的字符串。

#include <iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#include<cmath>

using namespace std;

int main()
{
char a[200];
while (cin >> a)
{
int len = strlen(a);
sort(a, a + len);
cout << a << endl;
}
return 0;
}

1361 求最大值
输入10个整数,要求输出其中的最大值。

#include <iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#include<cmath>

using namespace std;

int main()
{
int max = -1;
int temp;
for (int i = 0; i < 10; i++)
{
cin >> temp;
if (temp > max)
max = temp;
}
cout << "max="<<max << endl;
return 0;
}

1362 字符串去特定字符
输入字符串s和字符c,要求去掉s中所有的c字符,并输出结果。

#include <bits/stdc++.h>
using namespace std;
int main()
{
string s;
char c;
while(cin>>s>>c){
int len=s.size();
for(int i=0;i<len;i++){
if(s[i]!=c)
cout<<s[i];
}
cout<<endl;
}
return 0;
}

1363 计算另两个矩阵的乘积
计算两个矩阵的乘积,第一个是23,第二个是32

#include <iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#include<cmath>

using namespace std;

int main()
{
int a[2][3], b[3][2], c[2][2];
int sum;
for (int i = 0; i < 2; i++)
for (int j = 0; j < 3; j++)
cin >> a[i][j];
for (int i = 0; i < 3; i++)
for (int j = 0; j < 2; j++)
cin >> b[i][j];
for(int i=0;i<2;i++)
for (int j = 0; j < 2; j++)
{
sum = 0;
for (int k = 0; k < 3; k++)
sum += a[i][k] * b[k][j];
c[i][j] = sum;
}
for(int i=0;i<2;i++){
for (int j = 0; j < 2; j++)
cout << c[i][j] << " ";
cout << endl;
}

return 0;
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
一只很菜但是好学的猪 发布了38 篇原创文章 · 获赞 1 · 访问量 1553 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: