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< 2、编程序,求方程ax2+bx+c=0的根 #include using namespace std; int main() { double a,b,c,d,x1,x2; cin>>a>>b>>c; if(a==0) if(b==0) cout<<\ else cout<< \ else { d=b*b-4*a*c; if(fabs(d)<=1e-6) cout<<\ else if(d>1e-6) { x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); cout<<\ } else cout<<\方程无实根\\n\ } } 3、输入一个成绩,打印相应的等级 int main() { int a; cin >> a; if(a>=90) cout<<\ else if(a>=80) cout<<\ else if(a>=70) cout<<\ else if(a>=60) cout<<\ else cout<<\} 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 cout< 6、输入若干个数,设输入的第一个数为后面要输入的数的个数,求平均值及最大值。 int main() { int a,m,s=0; cin>>n; cin>>a; m=a; s=a; for(int i=1; i if(a>m) m=a; } cout<<\平均值:\,最大值:\} 1 7、输入若干个数,输入-999表示结束,求平均值及最大值。 #include { 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 < cout<<\平均值为:\最大值为:\ } } 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; } } 01263 9、印度国王的奖励,求和 s=2 + 2 + 2 +...+ 2 int main() { double t=1,s=0; for(int i=0; i<=63; i++) { s=s+t; t=2*t; } cout< 2 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< 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 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< 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< 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< 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、求水仙花数(一个三位数,其各位数字立方和等于该数字本身) 3 int main() { int i,a,b,c; for(i=100;i<=999;i++) { a=i/100; b=i/10; c=i; if(i==a*a*a+b*b*b+c*c*c) cout< int main() { int i,a,b,c; for(a=1;a<=9;a++) for(b=0;b<=9;b++) for(c=0;c<=9;c++) { i=a*100+b*10+c; if(i==a*a*a+b*b*b+c*c*c) cout< for(i=2;i<=n/2;i++) if(n%i==0) s=s+i; if(s==n) return 1; else return 0; } int main() { int n; for(n=2;n<=1000;n++) if perfect(n) cout< 19、写一函数,求斐波那契数列的第n项。 int fib(int n) { int i,f1,f2,f; if(n==1||n==2) return 1; f1=1; f2=1; for(i=3; i<=n; i++) { f=f1+f2; f1=f2; f2=f; } return f; } 20、写一个函数,取一个整数值并返回将此整数的各数字反序的数值 int reverse(int n) { int s=0; while(n) { s = s * 10 + n % 10; n /= 10; }; return s; } 21、写一个函数,将一个整数的各位数字的反序打印 void show(int n) { while(n) { cout << n % 10 << \ n /= 10; }; } void show(int n) { if(n < 10) cout << n; else { cout << n % 10 << \ show(n / 10); } } 22、写一个函数,将一个整数的各位数字的按顺序打印出来 void show(int n) { int k = 1, m = n; while(m > 10) { k *= 10; m /= 10; } while(n) { cout << n / k << \ n %= k; k /= 10; }; } 4 void show(int n) { int a[10], i=0; while(n) { a[i] = n % 10; n /= 10; i++; }