0
点赞
收藏
分享

微信扫一扫

头歌--C++之do-while循环性质

米小格儿 2022-04-13 阅读 162
c++

目录

第1关:求1到n间所有整数的和

本关必读

本关任务

测试说明

第2关:用牛顿迭代法求方程的实根

本关必读

本关任务

测试说明

第3关:求若干个整数中正整数的个数、总和及平均值

本关必读

本关任务

测试说明


第1关:求1到n间所有整数的和

本关必读

作为计算机编程语言的循环语句实例,求累加和几乎遍及所有的主流编程语言,理解累加和的求解过程对于掌握循环语句的精髓具有重要的作用。其中最常见的求累加和实例是求1100的和。

本关要求用do-while循环语句来求1n间所有整数的和。

本关任务

本关的编程任务是实现step1/SumOfDoWhile.cpp文件中的Sum函数,代码如下:

 
  1. // 使用while循环求1到n间所有整数的和
  2. int Sum(int n)
  3. {
  4. // 请在此添加实现代码
  5. }

测试说明

本关的测试文件是step1/SumOfDoWhileTest.cpp,负责对你写的实现代码进行测试。具体说明如下:

 
  1. #include <iostream>
  2. #include "SumOfDoWhile.h"
  3. using namespace std;
  4. int main()
  5. {
  6. int n;
  7. // 从命令行读入一个int型数值
  8. // 这个数取自测试集的输入
  9. cin >> n;
  10. cout << Sum(n) << endl;
  11. }

上述main函数从命令行读入,并将处理后的结果通过命令行输出。注意,step1/SumOfDoWhileTest.cpp的代码不能被修改。

其中:SumOfDoWhile.h文件代码如下:

 
  1. #ifndef _ISLEAPYEAR_H_
  2. #define _ISLEAPYEAR_H_
  3. int Sum(int );
  4. #endif

以下是平台对step1.SumOfDoWhileTest的测试样例:
测试输入:10
预期输出:55

测试输入:20
预期输出:210

测试输入:50
预期输出:1275

开始你的任务吧,祝你成功!

// 使用do-while循环求1到n间所有整数的和
int Sum(int n)
{
	int Sum=0,i=1;
	do{
		Sum+=i;
		i++;
	}while(i<=n);
	return Sum;
    // 请在此添加实现代码
}

第2关:用牛顿迭代法求方程的实根

本关必读

本关要求用do-while循环语句和牛顿迭代法来求方程 4 * x * x * x + 3 * x * x + 2 * x + 1 = 01附近的一个实根。

本关任务

本关的编程任务是实现step2/EquationCal.cpp文件中的部分代码,该文件代码如下:

 
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. #define A (4 * x * x * x + 3 * x * x + 2 * x + 1)
  5. #define B (12 * x * x + 6 * x + 2)
  6. int main()
  7. {
  8. double x = 1, a;
  9. // 请在下面添加do-while部分实现代码
  10. /******** Program ********/
  11. /********** End **********/
  12. cout << x << endl;
  13. }

测试说明

本关的测试文件仍然是step2/EquationCal.cpp,负责对你写的实现代码进行测试。

以下是平台对step2.EquationCal的测试样例:
测试输入:0
预期输出:* // *代表所求方程的实根

开始你的任务吧,祝你成功!

#include <iostream>
#include <cmath>
using namespace std;

#define A (4 * x * x * x + 3 * x * x + 2 * x + 1)
#define B (12 * x * x + 6 * x + 2)

int main()
{ 
    // 请在下面添加do-while部分实现代码
    /******** Program ********/
double x = 1, a;
    do
    {
        a=x;
        x=a-A/B;
    }
    while(fabs(x-a)>(1e-5));


    /********** End **********/	

    cout << x << endl;
}

第3关:求若干个整数中正整数的个数、总和及平均值

本关必读

本关要求:对于连续输入的若干个整数,输入0结束。请用do-while循环语句来统计其正整数的个数,并计算其中正整数的总和、平均值并输出。输入输出格式请见后续测试样例。

本关任务

本关的编程任务是实现step3/IntNumCal.cpp文件中的相应代码,该文件代码如下:

 
  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. // 请在下面添加实现代码
  6. /******** Program ********/
  7. /********** End **********/
  8. }

测试说明

本关的测试文件仍然是step3/IntNumCal.cpp,负责对你写的实现代码进行测试。

以下是平台对step3.IntNumCal的测试样例:
测试输入:27 76 49 36 54 0
预期输出:
n=5
avg=48.4
sum=242

测试输入:19 63 78 27 15 12 70 0
预期输出:
n=7
avg=40.5714
sum=284

测试输入:27 25 50 89 18 31 80 51 1 0
预期输出:
n=9
avg=41.3333
sum=372

开始你的任务吧,祝你成功!

#include <iostream>
using namespace std;

int main()
{
    // 请在下面添加实现代码
    /******** Program ********/    
int i,n,sum=0;
double aver;
do{
    n++;
    cin>>i;
    sum+=i;
}while(i!=0);
aver=(double)sum/(n-1);
cout<<"n="<<(n-1)<<endl;
cout<<"avg="<<aver<<endl;
cout<<"sum="<<sum<<endl;

    /********** End **********/ 
}
举报

相关推荐

0 条评论