50道C/C++编程练习题

1、输入3个数,求最大值
int main()
{ int a,b,c,m;
  cin>>a>>b>>c;
  m=a;
  if(b>m) m=b;
  if(c>m) m=c;
  cout<<m;
}
2、编程序,求方程ax2+bx+c=0的根
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
  double a,b,c,d,x1,x2;
  cin>>a>>b>>c;
  if(a==0)
    if(b==0) cout<<"error\n";
    else cout<< "x="<<-c/b<<endl;
  else
  { d=b*b-4*a*c;
    if(fabs(d)<=1e-6)
      cout<<"x1=x2="<<-b/(2*a)<<endl;
    else if(d>1e-6)
    { x1=(-b+sqrt(d))/(2*a);
      x2=(-b-sqrt(d))/(2*a);
      cout<<"x1="<<x1<<",x2="<<x2<<endl;
    }
  else cout<<"方程无实根\n";
  }
}
3、输入一个成绩,打印相应的等级
int main()
{ int a;
  cin >> a;
  if(a>=90) cout<<"A";
  else if(a>=80) cout<<"B";
  else if(a>=70) cout<<"C";
  else if(a>=60) cout<<"D";
  else cout<<"E";
}
4、输入3个double类型的值,判断这3个值是否可以表示一个三角形的三条边。
int main()
{
double a,b,c;
  cin>>a>>b>>c;
  if(a+b>c && b+c>a && c+a>b)
    cout<<"可以构成三角形";
  else
    cout<<"不可以构成三角形";
}
5、输入20个数,求其最大、最小和平均值
int main()
{
int i;
  int a,max,min,s;
  cin>>a;
  max=min=a; s=a;
  for(i=1;i<20;i++)
  { cin>>a;
    if(a>max) max=a;
    if(a<min) min=a;
    s=s+a;
  }
  cout<<max<<","<<min<<","<<s/20.0<<endl;
}
6、输入若干个数,设输入的第一个数为后面要输入的数的个数,求平均值及最大值。
int main()
{
int a,m,s=0;
  cin>>n;
  cin>>a;
  m=a; s=a;
  for(int i=1; i<n; i++)
  { cin>>a;
    s +=a;
    if(a>m) m=a;
  }
  cout<<"平均值:"<<(double)s/n<<",最大值:"<<m<<endl;
}
7、输入若干个数,输入-999表示结束,求平均值及最大值。
#include<iostream>
#include<iomanip>
#include<cstdlib>
using namespace std;
int main()
{ int n, count, sum, max;
  double ave;
  count = 0;
  cin >> n;
  sum = 0; max = n;
  while( n != -999 )
  { sum = sum + n;
    if( n > max ) max = n;
    count++;
    cin >> n;
  }
  if( count != 0 )
  { ave=static_cast<double>(sum) / count;
    cout<<setiosflags(ios::fixed) <<setprecision(2);
    cout<<"平均值为:"<<ave<<"  最大值为:"<<max<<endl;
  }
}
8、求和 s=1*1 + 2*2 + 3*3 +...+ 100*100
int main()
{ int i,t;
  double s=0;
  for(i=1; i<=100; i++)
  { t=i*i;
    s=s+t;
  }
}
9、印度国王的奖励,求和 s=20 + 21 + 22 +...+ 263
int main()
{ double t=1,s=0;
  for(int i=0; i<=63; i++)
  { s=s+t;
    t=2*t;
  }
  cout<<s/1.4e8<<endl;
10、求和 s=1! + 2! + 3! +...+ 10!
int main()
{ int i;
  long t,s;
  t=1; s=0;
  for(i=1; i<=10; i++)
  { t=t*i;
    s=s+t;
  }
}
11、求 e=1 + 1/1! + 1/2! + 1/3! + ...
int main()
{ int i;
  double t,e;
  i=1; t=1; e=1;
  while(t>=1e-7)
  { t=t/i;
    e=e+t;
    i=i+1;
  }
  cout<<e;
}
12、求PI值,PI/4 = 1 - 1/3 + 1/5 - 1/7 + ...
int main()
{ int i,k;
  double pi,t;
  i=1; t=1; pi=0; k=1;
  while(fabs(t)>1e-8)
  { pi=pi+t;
    i=i+2;
    k=-k;
    t=double(k)/i;
  }
  cout<<4*pi;
13、求PI值,PI/2 = 1 + 1/3 + 1/3*2/5 + 1/3*2/5*3/7 + ...
#include<iostream>
#include<cstdlib>
int main()
{
  int i,j;
  double pi,t;
  i=0; j=1; t=1; pi=0;
  while(t>1e-18)
  { pi=pi+t;
    i=i+1;
    j=j+2;
    t=t*i/j;
  }
  cout<<setprecision(17)<<2*pi;
}
14、输入20个数,统计其中正数、负数和零的个数。
int main()
{
int a,n=0,m=0,s=0;
  for(int i=1; i<=20; i++)
  { cin >> a;
    if(a>0) n++;
    else if(a<0) m++;
    else s++;
  }
  cout<<n<<" "<<m<<" "<<s;
}
15、输入若干个整数,计算其中的奇数之和与偶数之和,假设输入0表示结束。
int main()
{ int a,n=0,m=0;
  cin>>a;
  while(a!=0)
  { if(a%2 == 0) n += a;;
    else m += a;
    cin >> a;
  }
  cout<<n<<" "<<m;
}c编程网站
16、写一函数,计算x的y次方(假设x、y都为正整数)。
int pow(int x, int y)
{ int s=1;
  for(int i=1; i<=y; i++)
    s = s * x;
  return s;
}
17、求水仙花数(一个三位数,其各位数字立方和等于该数字本身)
int main()
{ int i,a,b,c;
  for(i=100;i<=999;i++)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。