/// <summary>/// 计分段函数的值/// </summary>/// <param name="x">x</param>/// <returns>y</returns>intFunction(int x){int y;if(x <1){
y = x;}elseif(x >=1&& x <10){
y =2* x -1;}else{
y =3* x +11;}return y;}
习题2.2
#include<stdio.h>#include<math.h>#include<complex.h>// 定义复数类型 typedefdouble complex Complex;// 求解一元三次方程 ax^3 + bx^2 + cx + d = 0 的根 voidsolveCubic(double a,double b,double c,double d){// 归一化系数,使得 a = 1 double A = b / a;double B = c / a;double C = d / a;// 计算判别式 Δ 和 Q, R double delta0 = B * B -3* A * C;double delta1 =2* B * B * B -9* A * B * C +27* A * A * d;double CuberootOfUnity1 =-0.5+sqrt(3.0)/2.0* I;double CuberootOfUnity2 =-0.5-sqrt(3.0)/2.0* I;
Complex D;if(delta1 >=0){// 一个实根和两个共轭复根 double sqrtDelta1 =sqrt(delta1);
D =cbrt(-0.5*(delta0 + sqrtDelta1));}else{// 三个实根或一个实根和一个重根(当 Δ = 0 时) double phi =acos(-0.5* delta1 /pow(fabs(delta0 +sqrt(delta0 * delta0 -4*pow(delta1 /3.0,3))),1.5));
D =2*sqrt(-delta0 /3.0)*cos(phi /3.0);}// 计算根
Complex omega1 =1.0;
Complex omega2 = CuberootOfUnity1;
Complex xi =cbrt(-0.5*(delta0 -(delta1 >=0?sqrt(delta1):-sqrt(delta0 * delta0 -4*pow(delta1 /3.0,3)))));
Complex root1 =-(A /3.0)+ D + xi;
Complex root2 =-(A /3.0)+ omega1 * D + omega2 * xi;
Complex root3 =-(A /3.0)+ omega2 * D + omega1 * xi;// 打印结果 printf("根 1: %.5f + %.5fi\n",creal(root1),cimag(root1));printf("根 2: %.5f + %.5fi\n",creal(root2),cimag(root2));printf("根 3: %.5f + %.5fi\n",creal(root3),cimag(root3));}intmain(){double a, b, c, d;// 输入系数 printf("请输入等式 ax^3 + bx^2 + cx + d = 0 中的系数a, b, c, d :\n");scanf("%lf %lf %lf %lf",&a,&b,&c,&d);// 求解并打印根 solveCubic(a, b, c, d);return0;}
习题2.3
#include<stdio.h>#include<limits.h>intmain(){int num[3], min_num = INT_MAX;printf("请输入三个数字:");for(int i =0; i <3; i++){scanf_s("%d",&num[i]);if(num[i]< min_num ){
min_num = num[i];}}printf("最小的数为:%d", min_num);return0;}
习题2.4
#include<stdio.h>voidPrintValue(int x,int y);intmain(){int x,int y;printf("请输入两个数: ");scanf_s("%d %d",&x,&y);PrintValue(x, y);return0;}voidPrintValue(int x,int y){(x > y)?printf("%d %d", x, x - y):printf("%d %d", y, y - x);}
习题2.5
/// <summary>/// 计算1~99之间所有的奇数和/// </summary>/// <returns></returns>intCalculateSum_odd(){int sum =0;for(int i =1; i <=99; i++){if(i %2!=0){
sum += i;}}return sum;}
习题2.6
/// <summary>/// 计算1000以内自然数中3的倍数和/// </summary>/// <returns></returns>intCalculateSum_multipleThree(){int sum =0;for(int i =0; i <1000; i++){if(i %3==0){
sum += i;}}return sum;}