我在家闲的长出了蘑菇,编程又不知道做啥,干脆把以前做的数学程序程序做个合集。
#include <bits/stdc++.h> //无敌万能库
using namespace std;
int main()
{
//定义变量
int xz,i,j,n,m; //全局
int a[15],t; //排序
int sx,mx,xs,gc,slh; //等差数列
int n1,n2,ts,js,sw1,sw2,jsh,c,sw1_zs,sw2_zs; //鸡兔同笼
int high,bottom1,bottom2,r; //几何问题
int lc,speed1,speed2,time; //相遇问题
//定义常量
const float PI = 3.14; //几何问题:圆周率
cout<<"请输入计算公式(1排序,2等差数列,3计算器,4鸡兔同笼,5几何问题,6相遇问题,7最大公约数):";cin>> xz;
//排序
if (xz == 1) //此方法是冒泡排序,用到了数组。
{
cout<<"请输入要排序数字的个数(最多15个):";cin>>n;
for(i=1;i<=n;i++)
{
cout<<"第"<<i<<"个数:";
cin>>a[i];
}
for(i=1;i<=n-1;i++)
{
for(j=1;j<=n-i;j++)
{
if(a[j] > a[j+1])
{
t = a[j];
a[j]=a[j+1];
a[j+1] = t;
}
}
}
cout<<"排好后的顺序是:";
for(i=1;i<=n;i++)
cout<<a[i]<<" ";
}
//等差数列
else if(xz == 2)
{
cout<<"请输入要计算的(1首项,2末项,3项数,4数列和):";cin>> xz;
if (xz == 1)
{
cout<<"请输入末项:";
cin>>mx;
cout<<"请输入项数:";
cin>>xs;
cout<<"请输入公差:";
cin>>gc;
sx=mx-(xs-1)*gc;
cout<<"首项是:"<<sx;
}else if(xz == 2)
{
cout<<"请输入首项:";
cin>>sx;
cout<<"请输入项数:";
cin>>xs;
cout<<"请输入公差:";
cin>>gc;
mx=sx+(xs-1)*gc;
cout<<"末项是:"<<mx;
}else if(xz == 3)
{
cout<<"请输入末项:";
cin>>mx;
cout<<"请输入首项:";
cin>>sx;
cout<<"请输入公差:";
cin>>gc;
xs=(mx-sx)/gc+1;
cout<<"项数是:"<<xs;
}else{
cout<<"请输入首项:";
cin>>sx;
cout<<"请输入末项:";
cin>>mx;
cout<<"请输入项数:";
cin>>xs;
slh=(sx+mx)*xs/2;
cout<<"数列和是:"<<slh;
}
}
//计算器
else if(xz == 3)
{
cout<<"请输入运算方法(1加法,2减法,3乘法,4除法):";cin>> xz;
cout<<"请输入第一个数字:";cin>>n1;
cout<<"请输入第二个数字:";cin>>n2;
if(xz == 1)
cout<<n1+n2;
else if(xz == 2)
cout<<n1-n2;
else if(xz == 3)
cout<<n1*n2;
else
cout<<n1/n2;
}
//鸡兔同笼
else if(xz == 4)
{
cout<<"请输入一共有几条腿:";cin>>js;
cout<<"请输入一共有多少个头(一共的只数):";cin>>ts;
cout<<"请输入生物1一只的腿数:";cin>>sw1;
cout<<"请输入生物2一只的腿数:";cin>>sw2;
if (sw1 > sw2)
{
jsh = sw2*ts;
c = js - jsh;
sw1_zs = c/(sw1 - sw2);
sw2_zs = ts - sw1_zs;
}
else
{
jsh = sw1*ts;
c = js - jsh;
sw2_zs = c/(sw2 - sw1);
sw1_zs = ts - sw2_zs;
}
cout<<"生物一有"<<sw1_zs<<"只"<<endl;
cout<<"生物二有"<<sw2_zs<<"只"<<endl;
}
//几何问题
else if(xz == 5)
{
cout<<"请输入你要计算的图形(1平行四边形和长方形,2三角形,3梯形,4圆)";cin>>xz;
if (xz == 1)
{
cout<<"请输入高(长):";cin>>high;
cout<<"请输入底(宽):";cin>>bottom1;
cout<<"面积是"<<high*bottom1<<endl;
cout<<"周长是"<<(high+bottom1)*2;
}
else if(xz == 2)
{
cout<<"请输入高:";cin>>high;
cout<<"请输入底:";cin>>bottom1;
cout<<"面积是"<<high*bottom1/2<<endl;
}
else if(xz == 3)
{
cout<<"请输入高:";cin>>high;
cout<<"请输入上底:";cin>>bottom1;
cout<<"请输入下底:";cin>>bottom2;
cout<<"面积是"<<(bottom1+bottom2)*high/2<<endl;
}
else
{
cout<<"请输入半径:";cin>>r;
cout<<"面积是"<<PI*r*r<<endl;
cout<<"周长是"<<2*PI*r<<endl;
}
}
//相遇问题
else if(xz == 6)
{
cout<<"你要求什么(1求路程和,2求其中一人的速度,3求时间):";cin>>xz;
if (xz == 1)
{
cout<<"请输入甲的速度:";cin>>speed1;
cout<<"请输入乙的速度:";cin>>speed2;
cout<<"请输入相遇时间:";cin>>time;
lc = (speed1 + speed2)*time;
cout<<"路程和是"<<lc;
}
else if(xz == 2)
{
cout<<"请输入路程和:";cin>>lc;
cout<<"请输入乙的速度:";cin>>speed2;
cout<<"请输入相遇时间:";cin>>time;
speed1 = lc / time - speed2;
cout<<"甲的速度是"<<speed1;
}
else
{
cout<<"请输入甲的速度:";cin>>speed1;
cout<<"请输入乙的速度:";cin>>speed2;
cout<<"请输入路程和:";cin>>lc;
time = lc/(speed1 + speed2);
cout<<"相遇时间是"<<time;
}
}
else if(xz == 7)
{
cout<<"请输入一个正整数:";cin>>m;
cout<<"请再输入一个正整数:";cin>>n;
i = m%n;
while (i != 0)
{
m=n;
n=i;
i=m%n;
}
cout<<"他们的最大公约数是"<<n<<endl;
}
}
做的确实不怎么好,全程用cout和cin而没用printf和scanf,鸡兔同笼还有问题,类型太少了。