简易累加求和工具

张开发
2026/5/6 0:43:55 15 分钟阅读
简易累加求和工具
一、题目描述编写一个C语言程序实现简易的累加求和功能具体需求如下第一步输入两个正整数a和ba ≤ b均≥1表示求和的范围超出范围或输入非法提示重新输入第二步程序自动完成3个核心求和任务① 求a到b之间所有整数的和② 求a到b之间所有奇数的和③ 求a到b之间所有偶数的和第三步输出3个求和结果同时计算并输出3个结果的平均值保留1位小数第四步询问用户是否继续求和输入y/Y继续输入n/N退出实现循环复用功能。二、题目要求贴合学者学习重点规范编程习惯避免杂乱代码明确4个要求必须使用循环实现累加求和优先使用for循环贴合初学者入门难度禁止直接使用求和公式锻炼循环运用能力核心求和逻辑所有整数和、奇数和、偶数和需独立封装成函数每个函数功能单一禁止所有代码写在main函数中输入校验对a和b进行双重校验均≥1、a≤b任意一项非法提示“输入非法请重新输入a和ba≤b均≥1”直到输入合法循环复用用户完成一次求和后询问是否继续输入y/Y则重新输入a和b输入n/N则退出程序输出“程序结束感谢使用”。三、输入输出示例给出两个输入输出示例涵盖正常输入、a和b非法输入、循环复用的场景大家可对照示例检验代码正确性避免踩坑。示例1正常输入循环复用输入2 6 y 3 8 n输出 求和结果 2到6之间所有整数的和20 2到6之间所有奇数的和8 2到6之间所有偶数的和12 三个结果的平均值13.3 是否继续求和y/Y继续n/N退出 求和结果 3到8之间所有整数的和33 3到8之间所有奇数的和15 3到8之间所有偶数的和18 三个结果的平均值22.0 是否继续求和y/Y继续n/N退出 程序结束感谢使用示例2a和b非法输入重新输入输入7 5 # ab非法 0 4 # a0非法 2 9 n输出输入非法请重新输入a和ba≤b均≥1 输入非法请重新输入a和ba≤b均≥1 求和结果 2到9之间所有整数的和44 2到9之间所有奇数的和24 2到9之间所有偶数的和20 三个结果的平均值29.3 是否继续求和y/Y继续n/N退出 程序结束感谢使用四、解题思路引导新手拿到题目不用慌按照“输入校验-求和-输出-循环复用”的步骤拆解逐步实现难度会大大降低重点掌握“累加逻辑”和“循环控制”第一步实现循环复用功能——用do-while循环包裹整个程序核心逻辑先执行一次求和再询问用户是否继续符合“先执行、后判断”的需求。第二步完成a和b的输入与校验——在循环内部输入a和b用if语句判断是否满足“a≥1、b≥1、a≤b”不满足则提示重新输入直到合法可嵌套while循环实现校验。第三步封装核心求和函数——根据需求封装3个函数每个函数仅实现一个求和功能逻辑简单易懂所有整数和接收a和b用for循环从a遍历到b将每个整数累加返回求和结果奇数和接收a和b用for循环从a遍历到b判断每个数是否为奇数是则累加返回求和结果偶数和接收a和b用for循环从a遍历到b判断每个数是否为偶数是则累加返回求和结果。第四步计算平均值并输出——调用3个求和函数获取3个结果计算平均值三个结果之和除以3保留1位小数输出最后询问用户是否继续。五、完整参考代码老规矩先自己尝试编写遇到卡壳再对照参考不要直接复制粘贴代码加入了详细注释每个函数、每个步骤的作用都讲得很清楚贴合初学者的理解节奏重点标注了累加逻辑和循环控制的核心。#include stdio.h // 函数声明3个核心求和函数功能单一贴合初学者 // 1. 求a到b之间所有整数的和int sumAll(int a, int b) { int sum 0; // for循环从a遍历到b累加所有整数for (int i a; i b; i) { sum i; } return sum;} // 2. 求a到b之间所有奇数的和int sumOdd(int a, int b) {int sum 0;for (int i a; i b; i) {// 判断是否为奇数是则累加if (i % 2 ! 0) {sum i;}} return sum;} // 3. 求a到b之间所有偶数的和int sumEven(int a, int b) {int sum 0;for (int i a; i b; i) { // 判断是否为偶数是则累加if (i % 2 0) {sum i; }} return sum; }int main() {int a, b;char choice;// 存储用户选择y/Y/n/N // do-while循环先执行一次求和再询问是否继续实现循环复用do { // 输入a和b并校验a≥1、b≥1、a≤bprintf(请输入两个正整数a和ba≤b均≥1);while (1) { scanf(%d %d, a, b);// 双重校验均为正整数且a≤bif (a 1 b 1 a b) {break;// 输入合法退出校验循环 }else {printf(输入非法请重新输入a和ba≤b均≥1); }}// 调用函数获取三个求和结果int allSum sumAll(a, b);int oddSum sumOdd(a, b); int evenSum sumEven(a, b);// 计算平均值保留1位小数强制转换为double避免整数除法double average (allSum oddSum evenSum) / 3.0; // 输出结果格式清晰 printf(\n 求和结果 \n);printf(%d到%d之间所有整数的和%d\n, a, b, allSum);printf(%d到%d之间所有奇数的和%d\n, a, b, oddSum);printf(%d到%d之间所有偶数的和%d\n, a, b, evenSum);printf(三个结果的平均值%.1f\n, average);// 询问用户是否继续printf(是否继续求和y/Y继续n/N退出);// 吸收scanf遗留的换行符避免影响choice的输入getchar();scanf(%c, choice); }while (choice y || choice Y); // 输入y/Y则继续循环 // 退出循环输出结束提示printf(程序结束感谢使用\n);return 0; }}

更多文章