#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include<cmath>
#include<iomanip>
using namespace std;
//输出一个数字的各位数字之和
int main()
{
int n;
cin >> n;
int cnt = 0, sum = 0;
while (n)
{
sum += n % 10;
cnt++;
n /= 10;
}
cout << cnt << ' ' << sum << endl;
}
//计算pi的麦克劳林公式
int main()
{
double pi = 0;
double n = 1, t = 1,flag=1;
while (fabs(n) > 1e-5)
{
pi += n;
t += 2;
flag *= -1;
n = flag/ t;
}
cout << 4 * pi << endl;
return 0;
}
//判断并输出素数
int prime(int n)
{
int i = 2;
for (; i < n; i++)
if (n % i == 0)break;
if (n == i)return 1;
else return 0;
}
int main()
{
int n = 0;
for (int i = 100; i <= 200; i++)
{
if (prime(i))
{
cout << i << ' ';
n++;
}
if (n == 5)
{
cout << endl;
n = 0;
}
}
}
//杨辉三角
int main()
{
int a[8][8] = { 0 };//先置零
for (int i = 0; i < 8; i++)
{
a[i][0] = 1;
a[i][i] = 1;
}//将边角置1
for (int i = 2; i < 8; i++)
for (int j = 1; j < i; j++)
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
for (int i = 0; i < 8; i++)
{
for (int j = 0; j <= i; j++)
cout << a[i][j] << ' ';
cout << endl;
}
}
//输入一个数组,并逆置
void reverse(int* p,int n)
{
int* i, * j, t;
i = p;
j = p + n-1;
for (; i < j; i++, j--)
t = *i, * i = *j, * j = t;
}
int main()
{
int n;
cin >> n;
int* p = new int[n];
for (int i = 0; i < n; i++)
{
cin >> *(p + i);
}
reverse(p,n);
for (int i = 0; i < n; i++)
{
cout<< *(p + i)<<' ';
}
//类与对象长方体
class Cube
{
private:
double l, w, h;
public:
Cube(double x, double y, double z)
{
l = x; w = y; h = z;
}
double vol()
{
return l * w * h;
}
~Cube()
{
cout << "调用析构函数" << endl;
}
};
int main()
{
Cube cub1(1, 2, 3), cub2(3, 3, 3);
cout << cub1.vol() << endl;
cout << cub2.vol() << endl;
return 0;
}
//类与对象面积问题
#define pi 3.14159
class circle
{
private:
double r;
public:
circle(double x)
{
r = x;
}
double peri()
{
return 2 * pi * r;
}
double area()
{
return pi * r * r;
}
~circle()
{
cout << "调用析构函数" << endl;
}
};
int main()
{
double a;
cout << "游泳池的半径是:" << endl;
cin >> a;
circle cir1(a), cir2(a + 3);
cout << "过道的造价" << (cir2.area() - cir1.area()) * 20 << endl;
cout << "栅栏的造价:" << (cir2.peri() + cir1.peri()) * 35 << endl
}
//学生成绩
class student
{
char name[10];
int m;
int p;
int e;
public:
student(char* a, int b, int c,int d)
{
strcpy(name, a);
m = b;
p = c;
e = d;
}
float average()
{
return (m + p + e) / 3;
}
void show()
{
cout << "数学成绩为:" << m << '\n' << "物理成绩为:" << p << '\n' << "英语成绩为:" << e << '\n';
}
};
int main()
{
char a[100] = "NATHAN";
student Q(a, 100, 100,100);
cout<<"平均分为:"<<Q.average();
Q.show();
}
//输出各位数字
int main()
{
int n;
cin >> n;
int a, b, c, d;
a = n % 10;
b = n / 10 % 10;
c = n / 100 % 10;
d = n / 1000;
cout << d << c << b << a << endl;
}
//判断素数
int prime(int n)
{
for (int i = 2; i < n; i++)
if (n % i == 0)
return 0;
return 1;
}
int main()
{
int n; cin >> n;
if (prime(n))
cout << "是素数" << endl;
else
cout << "不是素数" << endl;
}
//欧几里得算法求最小公倍数和最大公约数
int gcd(int a, int b)
{
return b == 0 ? a : gcd(b, a % b);
}
int main()
{
int a, b;
cin >> a >> b;
cout << gcd(a, b) << endl;
cout << a * b / gcd(a, b) << endl;
}
//水仙花数
int main()
{
int a0, a1, a2;
int b;
for (b = 100; b <= 999; b++)
{
a2 = b / 100;
a1 = b / 10 % 10;
a0 = b % 10;
if (a0 * a0 * a0 + a1 * a1 * a1 + a2 * a2 * a2 == b)
cout << b << endl;
}
}
//回文数
bool invert(int a)
{
int i = a;
int b = 0;
while (i)
{
b = b * 10 + i % 10;
i/= 10;
}
if (a== b)
return 1;
else
return 0;
}
int main()
{
int a;
cin >> a;
if (invert(a))
cout << "YES" << endl;
else
cout << "NO" << endl;
}
//冒泡排序算法
int main()
{
int a[5];
for (auto& x : a)cin >> x;
int n = 5;
int t;
for(int i=0;i<n-1;i++)
for (int j = 0; j < n - i - 1; j++)
{
if (a[j] > a[j+1])//如果遇到更大则交换沉底
{
t = a[j];
a[j] = a[j+1];
a[j + 1] = t;
}
}
for (auto& x : a)cout << x << '\t';
}
//选择排序算法
int main()
{
int a[5];
for (auto& x : a)cin >> x;
int n = 5;
int t,min;
for (int i = 0; i < n - 1; i++)
{
min = i;
for (int j = i+1; j < n; j++)
{
if (a[min] > a[j])//如果遇到更小的则将其替换
{
t = a[j];
a[j] = a[min];
a[min] = t;
}
}
}
for (auto& x : a)cout << x << '\t';
}
//二维数组基本操作,求最大最小值,逆转数组
int main()
{
int a[3][3];
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
cin >> a[i][j];
int min = a[0][0],max=a[0][0];
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
{
if (min > a[i][j])
min = a[i][j];
if (max < a[i][j])
max = a[i][j];
}
cout << min << '\t'<<max<<endl;
//转置
int t = 0;
for(int i=0;i<3;i++)
for (int j = 0; j < i ; j++)
{
t = a[j][i];
a[j][i] = a[i][j];
a[i][j] = t;
}
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
cout << a[i][j] << '\t';
cout << endl;
}
}
【大一上】c++手写代码总结
最新推荐文章于 2023-12-30 16:56:33 发布