重生之你是C++大佬,当你打开这篇博客,竟然发现这点小题简直易如反掌,于是摩拳擦掌,写他个几千行代码。
1.找素数并排序
【问题描述】编写两个函数,将n个正整数中的素数按升序排序。函数功能分别是:判断一个数是否为素数,以及对数组进行排序。输入分2行:第一行为n的值,第二行为n个整数。要求输入输出均在主函数中完成。
【输入形式】输入分两行,第一行输入n的值,第二行输入n个数
【输出形式】排序后的结果,用空格隔开
【样例输入】
9
9 8 7 6 5 4 3 2 1
【样例输出】
2 3 5 7
【题目解析】
#include<iostream>
using namespace std;
int n, a[10001],t,b[10001],k;
void sushu()//判断素数
{
for (int i = 0; i < n; i++)
{
for (int j = 1; j <= a[i]; j++)
{
if (a[i] % j == 0)
t++;
}
if (t == 2)
b[++k] = a[i];
t = 0;
}
}
void paixu()//冒泡排序
{
sushu();
for (int i = 1; i <= k; i++)
{
for (int j = 1; j <= k - i; j++)
{
if (b[j] > b[j + 1])
swap(b[j], b[j + 1]);
}
}
}
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
paixu();
for (int i = 1; i <= k; i++)
cout << b[i]<<" ";
return 0;
}
2.分段函数
【问题描述】有一分段函数如下,编写函数进行计算,在主函数中输入x值,输出y值。
【样例输入1】-1.5
【样例输出1】0.00250501
【样例输入2】5.6
【样例输出2】31.8957
【样例输入3】12.5
【样例输出3】4.06202
#include<iostream>
#include<cmath>
using namespace std;
double x,y;
double qiuy()
{
if (x < 0)
y = sin(x) + 1;
else if (x >= 10)
y = sqrt(x + 4);
else
y = x * x + 3.0 / x;
return y;
}
int main()
{
cin >> x;
cout << qiuy();
return 0;
}
3.n以内的素数倒数之和
【问题描述】求数列
其中分母为n以内(包括n)的素数。要求使用函数,函数功能是:计算数列中一项的值,把k值提供给函数,函数返回k的倒数或0;n由键盘输入。主函数完成数据的输入、累加和输出。
【样例输入】50
【样例输出】1.66165
#include<iostream>
#include<cmath>
using namespace std;
double S;
int n, k,t;
double qiuk(int k)
{
t = 0;
for (int j = 1; j <= k; j++)
{
if (k % j == 0)
t++;
}
if (t == 2)
return 1.0 / k;
else return 0;
}
int main()
{
cin >> n;
for (int k = 2; k <= n; k++)
{
S+=qiuk(k);
}
cout <<S;
return 0;
}
4.十进制转八进制
【问题描述】编写程序完成进制转换,要求使用函数,函数功能是:十进制转换为八进制,输入输出均在主函数中完成。
【输入形式】十进制数
【输出形式】八进制数
【样例输入】125
【样例输出】175
【样例说明】十进制125转化为八进制结果为175
【题目解析】使用除8取余法。即用十进制数除以8,得到商和余数,记下余数,然后用商再次除以8,再次记下余数,如此反复,直到商为0为止。
#include<iostream>
#include<cmath>
using namespace std;
int n, k=1,t;
int eight()
{
while (n > 0)
{
t+=(n % 8)* k;
k *= 10;
n /= 8;
}
return t;
}
int main()
{
cin >> n;
cout << eight();
return 0;
}
5.求从右数第k位数字
【问题描述】编写函数digit(num, k),函数功能是:求整数num从右边开始的第k位数字的值,如果num位数不足k位则返回0。要求输入输出均在主函数中完成。
【输入形式】两个数,分别是num值和k值
【输出形式】一个数
【样例输入1】4647 3
【样例输出1】6
【样例输入2】23523 7
【样例输出2】0
【样例说明】4647从右边开始的第3位数字是6,而23523不足7位,输出0
#include<iostream>
using namespace std;
int n,k,t;
int Nok()
{
while (n > 0)
{
t++;
if (t == k)
return n % 10;
n /= 10;
}
if (n == 0)
return 0;
}
int main()
{
cin >> n >> k;
cout << Nok();
return 0;
}
写在最后
C++入门系列就到这里,关于C++剩余的内容将在之后陆续揭晓,同时我也会更新一些关于前端的知识,敬请期待。代码无情,人间有情,欢迎大家点赞评论加收藏。内容如有问题还请大家在评论区指点一二。