admin 管理员组

文章数量: 1086019


2024年4月30日发(作者:php安装命令)

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

#include

using namespace std;

int main()

{

double a,b,c,d,x1,x2;

cin>>a>>b>>c;

if(a==0)

if(b==0) cout<<"errorn";

else cout<< "x="<<-c/b<

else

{ d=b*b-4*a*c;

if(fabs(d)<=1e-6)

cout<<"x1=x2="<<-b/(2*a)<

else if(d>1e-6)

{ x1=(-b+sqrt(d))/(2*a);

x2=(-b-sqrt(d))/(2*a);

cout<<"x1="<

}

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

s=s+a;

}

cout<

}

6、输入若干个数,设输入的第一个数为后面要输

入的数的个数,求平均值及最大值。

int main()

{

int a,m,s=0;

cin>>n;

cin>>a;

m=a; s=a;

for(int i=1; i

{ cin>>a;

s +=a;

if(a>m) m=a;

}

cout<<"平均值:"<<(double)s/n<<",最大值:

"<

}

1

7、输入若干个数,输入-999表示结束,求平均值

及最大值。

#include

#include

#include

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(sum) / count;

cout<

<

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

#include

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<

}

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%10;

c=i%10;

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<

}

}

18、编写一个函数,确定一个整数是否为完全数(一

个数,等于他的因子之和)。用这个函数确定和打

印1到1000之间的所有完全数。

int perfect(int n)

{ int i,s=1;

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++;

}

for(int j=i-1; j>=0; j--)

cout<

}

void show(int n)

{ if( n < 10 ) cout << n;

else

{ show( n / 10 );

cout << " " << n % 10;

}

}

23、求一个整数的各位数之和的函数

int sum(int n)

{ int s = 0;

while(n)

{ s += n % 10;

n /= 10;

};

return s;

}

24、写一函数,判断某个数是否素数,以及求1-

1000之内的素数

#include

#include

#include

using namespace std;

bool isprime(int n)

{ float k=sqrt(float(n));

for(int i=2; i<=k; i++)

if(n%i==0) return false;

return true;

}

int main()

{ for(int n=2; n<=1000; n++)

if(isprime(n)) cout<

}


本文标签: 输入 整数 数字 函数 个数