实践编写具有逻辑控制的简单程序
下面是一个简单的C++程序示例,它使用了条件语句和循环语句来实现逻辑控制。这个程序会要求用户输入一系列整数,然后计算并输出这些整数的总和以及平均值。如果用户输入了一个非整数,程序会提示用户重新输入。
#include <iostream>
#include <limits>
int main() {
int sum = 0;
int count = 0;
int number;
bool isValidInput;
std::cout << "请输入一系列整数(输入非数字结束):" << std::endl;
do {
std::cin >> number;
// 检查输入是否有效
isValidInput = std::cin.good();
// 清除输入流中的错误标志并忽略错误的输入
if (!isValidInput) {
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cout << "无效输入,请输入一个整数:" << std::endl;
} else {
sum += number;
++count;
}
} while (isValidInput);
if (count > 0) {
double average = static_cast<double>(sum) / count;
std::cout << "你输入了 " << count << " 个整数。" << std::endl;
std::cout << "这些整数的总和是 " << sum << "。" << std::endl;
std::cout << "这些整数的平均值是 " << average << "。" << std::endl;
} else {
std::cout << "没有输入任何整数。" << std::endl;
}
return 0;
}
这个程序使用了do-while
循环来不断读取用户的输入,直到输入无效(即非整数)为止。在每次循环中,程序首先尝试从标准输入流std::cin
读取一个整数,并检查输入是否有效。如果输入无效,程序会清除输入流中的错误标志,并忽略错误的输入,然后提示用户重新输入。如果输入有效,程序会将输入的整数加到总和sum
中,并增加计数器count
的值。
当循环结束后,程序会检查计数器count
的值。如果count
大于0,说明用户至少输入了一个整数,程序会计算并输出这些整数的总和以及平均值。否则,程序会输出一条消息,说明用户没有输入任何整数。
下面是一个更深入的C++代码示例,它演示了如何定义和使用函数,包括带有参数和返回值的函数,以及如何在主函数中调用这些函数来实现一些基本的逻辑控制。
这个示例程序将实现以下几个功能:
- 定义一个函数来计算两个整数的和。
- 定义一个函数来判断一个整数是否为偶数。
- 在主函数中调用这些函数,并根据结果执行相应的逻辑。
#include <iostream> // 函数声明 int add(int a, int b); bool isEven(int number); int main() { int num1 = 5; int num2 = 3; int sum = add(num1, num2); // 调用add函数计算两个数的和 std::cout << "The sum of " << num1 << " and " << num2 << " is: " << sum << std::endl; if (isEven(sum)) { // 调用isEven函数判断和是否为偶数 std::cout << "The sum is an even number." << std::endl; } else { std::cout << "The sum is an odd number." << std::endl; } // 演示循环和条件语句 int counter = 0; while (counter < 10) { // 循环10次 int temp = add(counter, counter); if (isEven(temp)) { // 如果和是偶数 std::cout << counter << " + " << counter << " = " << temp << " (even)" << std::endl; } else { // 如果和是奇数 std::cout << counter << " + " << counter << " = " << temp << " (odd)" << std::endl; } ++counter; // 计数器递增 } return 0; } // 函数定义 int add(int a, int b) { return a + b; // 返回两个整数的和 } bool isEven(int number) { return number % 2 == 0; // 返回是否为偶数(如果是偶数返回true,否则返回false) }
在这个示例中:
add
函数接受两个整数参数a
和b
,返回它们的和。isEven
函数接受一个整数参数number
,如果number
是偶数则返回true
,否则返回false
。main
函数是程序的入口点。它首先声明并初始化两个整数num1
和num2
,然后调用add
函数计算它们的和,并将结果存储在sum
变量中。接着,它使用if
语句调用isEven
函数来判断sum
是否为偶数,并输出相应的信息。main
函数还包含一个while
循环,该循环执行10次。在每次迭代中,它计算counter
的两倍,并检查结果是否为偶数。根据结果,它输出相应的信息。
这个示例展示了如何使用函数来组织代码,并在主函数中通过条件语句和循环语句实现逻辑控制。通过分解代码到不同的函数中,可以使程序更易于理解和维护。