1.4. Control Structures

来源:互联网 发布:centos apache公网ip 编辑:程序博客网 时间:2024/04/28 19:10
Exercise 1.9: What does the following for loop do? What is the final value of sum?


下列循环做什么?sum 的最终值是多少?


    int sum = 0;
    for (int i = -100; i <= 100; ++i)
        sum += i;


答:sum = 0。sum = (-100) + (-99) + (-98)+ ……+ 98 + 99 + 100。


 
Exercise 1.10:  Write a program that uses a for loop to sum the numbers from 50 to 100. Now rewrite the program using a while.


用 for 循环编程,求从 50 到 100 的所有自然数的和。然后用 while 循环重写该程序。

#include <iostream>using namespace std;int main(void){int tmp = 10;while(tmp >= 0){cout << tmp << " ";--tmp;}cout << endl;for (int i = 10; i >= 0; --i){cout << i << " ";}cout << endl;return 0;}


#include <iostream>using namespace std;int main(void){int sum = 0,i = 50;#if 0for (int i = 50; i <= 100; ++i){sum += i;}cout << sum << endl;#endifwhile (i <= 100){sum += i;++i;}cout << sum << endl;return 0;}




 

 Exercise 1.11: Write a program using a while loop to print the numbers from 10 down to 0. Now rewrite the program using a for.


用 while 循环编程,输出 10 到 0 递减的自然数。然后用 for 循环重写该程序。



#include <iostream>using namespace std;int main(void){int tmp = 10;while(tmp >= 0){cout << tmp << " ";--tmp;}cout << endl;for (int i = 10; i >= 0; --i){cout << i << " ";}cout << endl;return 0;}


 

#include <iostream>using namespace std;int main(void){int tmp = 10;while(tmp >= 0){cout << tmp << " ";--tmp;}cout << endl;for (int i = 10; i >= 0; --i){cout << i << " ";}cout << endl;return 0;}

Exercise 1.16: Write a program to print the larger of two inputs supplied by the user.


编写程序,输出用户输入的两个数中的较大者。

#include <iostream>using namespace std;int main(void){int val1 = 0,val2 = 0,max = 0;cin >> val1 >> val2;max = (val1 > val2)?val1:val2;cout << max << endl;return 0;}


 
 Exercise 1.17: Write a program to ask the user to enter a series of numbers. Print a message saying how many of the numbers are negative numbers.


编写程序,要求用户输入一组数。输出信息说明其中有多少个负数。
 

#include <iostream>using namespace std;int main(void){int val = 0,count = 0;while (cin >>val){if (val < 0){++count;}}cout << count << endl;return 0;}

 Exercise 1.18: Write a program that prompts the user for two numbers and writes each number in the range specified by the two numbers to the standard output.


编写程序,提示用户输入两个数并将这两个数范围内的每个数写到标准输出。

#include <iostream>using namespace std;int main(void){int num1 = 0,num2 = 0,tmp = 0;cin >> num1 >> num2;if (num1 > num2){tmp = num1;num1 = num2;num2 = tmp;}for (int i = num1; i <= num2; ++i){cout << i << endl;}return 0;}


 
 Exercise 1.19: What happens if you give the numbers 1000 and 2000 to the program written for the previous exercise? Revise the program so that it never prints more than 10 numbers per line.


如果上题给定数 1000 和 2000,程序将产生什么结果?修改程序,使每一行输出不超过 10 个数。
 
#include <iostream>using namespace std;int main(void){int num1 = 0,num2 = 0,tmp = 0,count = 0;cin >> num1 >> num2;if (num1 > num2){tmp = num1;num1 = num2;num2 = tmp;}for (int i = num1; i <= num2; ++i){cout << i << " ";++count;if (count % 10 == 0){cout << endl;}}return 0;}




0 0