由于时间较长,文档混乱,不分顺序
//比赛找对手
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d,e,f;
for(a=1;a<=3;a++)
for(b=1;b<=3;b++)
for(c=1;c<=3;c++)
if(a==1 ||c==1||c==3||a==b||a==c||b==c) //这里最开始用了&&,结果当然出错。
{}
else
{
cout<<"张三 - ";
d=a;
if(d==1)
cout<<"陈六"<<endl; //想法很多,做法很少。
//本来想用goto节省筛选名字if的重复次数,无奈不知道怎么转回去继续,百度之后发现不推荐用goto
//只能用这种笨方法
if(d==2)
cout<<"赵七"<<endl;
if(d==3)
cout<<"宋八"<<endl;
cout<<"李四 - ";
d=b;
if(d==1)
cout<<"陈六"<<endl;
if(d==2)
cout<<"赵七"<<endl;
if(d==3)
cout<<"宋八"<<endl;
cout<<"王五 - ";
d=c;
if(d==1)
cout<<"陈六"<<endl;
if(d==2)
cout<<"赵七"<<endl;
if(d==3)
cout<<"宋八"<<endl;}
return 0;
}
/*自然对数e的近似值*/
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
double i,n,p,e;
for(n=1,i=1,e=1;i<=10;i++) //for(n=1,i=1,e=1;p>=1e-6;i++) 这么写的话程序结果错误,不知道错误原因是啥
{
n*=i;
p=1/n;
e+=p;
}
cout<<"e的近似值为:"<<setprecision(7)<<e<<endl;
return 0;//怎么样才是误差在10的-6次方内,这个不是很理解。究竟是结果去7位有效数字呢?还是求到其中一项阶乘的倒数为7位有效数呢?这是个问题。
}
/*圆周率π*/
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int d=1;
double a=1,c=0,b=1;
for(;b>=1e-6;a+=2,d++)
{
b=1/a;
if(d%2==1)
c+=b;
else
c-=b;
}
cout<<"π的近似值为:"<<setprecision(7)<<4*c<<endl; //不知道什么原因,最后结果错误,小数点后前5位精确,第6位错误。
return 0;
}
/*百钱百鸡*/
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d,n=0;
for(a=0;a<20;a++)
for(b=0;b<34;b++)
for(c=0;c<=99;c+=3)
{
d=5*a+3*b+c/3;
if(d==100 && a+b+c==100)
{n++;
cout<<"第"<<n<<"种方案:"
<<"鸡翁 "<<a<<" 只"<<'\t'
<<"鸡母 "<<b<<" 只"<<'\t'
<<"鸡雏 "<<c<<" 只"<<endl;}}
return 0;
}
/*猴子吃苹果*/
#include<iostream>
using namespace std;
int main()
{
int a,b=1;
for(a=1;a<=9;a++)
{b+=1;
b*=2;}
cout<<"猴子第一天摘了"<<b<<"个苹果"<<endl;//这个猴子明显是开挂的,动手能力和消化能力都已经是传说级别。
return 0;
}
/*计算1*/
#include<iostream>
using namespace std;
int main()
{
int a=1,c=1,n,s=0;
cout<<"s=1!+2!+3!+......n!,输入n"<<endl;
cin>>n;
for(;a<=n;a++) //在这里,如果不给for加{}范围,则会出现结果错误,何解?
{c*=a;
s+=c;}
cout<<"s="<<s<<endl;
return 0;
}
/*计算2*/
#include<iostream>
using namespace std;
int main()
{
int a=1,b=1,n,s=0;
cout<<"s=1!+2!+3!+......n!输入n="<<endl;
cin>>n;
while(a<=n)
{b*=a;
s+=b;
a++;}
cout<<"s="<<s<<endl;
return 0;
}
/*s[n]=a+aa+aaa+aa...a(n个)*/
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int a,b=0,c=0,n,s=0;
cout<<"已知s[n]=a+aa+aaa+aa...a(n个)按照先后顺序先后输入a,n:"<<endl;
cin>>a>>n;
for(;b<=n-1;b++)
{
c+=a*pow(10,b);
s+=c;
}
cout<<"s["<<n<<"]="<<s<<endl;
return 0;
}
/*塔,高*/
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
double a,b,c;
cout<<"输入点平面坐标(按横轴纵轴先后顺序):"<<endl;
cin>>a>>b;
a=fabs(a);
b=fabs(b);
c=(2-a)*(2-a)+(2-b)*(2-b);
if(c<=1)
cout<<"该点有建筑物且高度为10m"<<endl;
else
cout<<"该点无建筑物"<<endl;
return 0;
}
/*课本习题7*/
#include<iostream>
using namespace std;
int main()
{
int a;
cout<<"输入一个数,显示其范围:"<<endl;
cin>>a;
if(a<10)
cout<<a<<"小于10"<<endl;
else if(a<100) //有个奇怪的错误,如果改成else if(10<=a<100),下面改成else if(100<=a<1000),那么在100以后的数全归入10-100的范围,望解答
cout<<a<<"大于等于10小于100"<<endl;
else if(a<1000)
cout<<a<<"大于等于100小于1000"<<endl;
else
cout<<a<<"大于等于1000"<<endl;
return 0;
}
#include<iostream>
using namespace std;
int main()
{
cout<<" *"<<endl
<<" * * *"<<endl
<<" * * * * *"<<endl
<<"* * * * * * *"<<endl
<<" * * * * *"<<endl
<<" * * *"<<endl
<<" *"<<endl;//笨方法
return 0;
}
/*习题9*/
#include<iostream>
using namespace std;
int main()
{
int n,j;
for(n=1,j=0;j<=1000;n++)
j+=n*n;
cout<<"n="<<n-1<<endl;
return 0;
}
/*习题10*/
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int a,b;
a=100000*30;
b=0.01*pow(2,30);
cout<<"富翁给了陌生人"<<b<<"元"<<endl
<<"陌生人给了富翁"<<a<<"元"<<endl;
return 0;
}
/*乘法表*/
#include<iostream>
using namespace std;
int main()
{
int i=1,j=1;
for(;j<=9;j++)
{
for(;i<=j;i++)
{cout<<i<<"*"<<j<<"="<<i*j<<" ";}
cout<<endl;
i=1;
}
return 0;
}
/*整数*/
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int a,b=0,c=11,d,e=0;
cout<<"输入一个10位数以内的整数:";
cin>>a;
d=a;
for(;c>=10;b++) //这里很艹蛋,不给c设置>=10的初始值的时候,会默认c是一个负得很夸张的数,从而导致for循环一开始就结束了
{
c=a/pow(10,b);
}
cout<<endl<<"该整数为"<<b<<"位数"<<endl
<<"该整数各位数分别为:";
for(;b>=1;b-=1) //经测试,这里输入的数字若超于10位数,程序结果会错误,目测是计算范围的问题
{
c=a/pow(10,b);
d=a/pow(10,b-1);
cout<<d-c*10<<" ";
e+=d-c*10;
}
cout<<endl<<"各位数之和为:"<<e<<endl;
return 0;
}
失误都在程序备注中提出了,然后就是作业太多,压力太大