程序设计目标:
1、程序运行,输出一个菜单。输入“1”进入计算,如不主动退出,可以一直计算。输入“0”退出程序
2、程序可以由用户输入要计算的数字,并且可以由用户来输入要计算前多少项。
3、进入计算程序后,计算数字要求在1-9之间。输入“0”提示“确定要返回主菜单吗?Y/N:>”,输入非“0”的其它数字提示“输入错误,请重新输入!”
完整代码:
//头文件 #include <stdio.h> #include <string.h> //菜单函数 void menu() { printf("********************* a+aa+...+(n个a) 计算器 *********************\n"); printf("******************************************************************\n"); printf("************************ 1.进入程序 *************************\n"); printf("************************ 0.退出程序 *************************\n"); printf("******************************************************************\n"); printf("********************* a+aa+...+(n个a) 计算器 *********************\n"); } //求和计算函数 void fun_sum() { int i = 0; int a = 0, n = 0; int sum = 0; while (1) { int flag = 1; //标记变量,0:确认返回上一级 1:不返回上一级,继续计算 printf("请输入要计算的数字 (输入0返回主菜单):>"); scanf("%d", &a); if (a > 0 && a < 10) //求和计算 { printf("您想计算前多少项?请输入数字:>"); scanf("%d", &n); int tmp_num = 0; for (i = 0; i < n; i++) { tmp_num = tmp_num * 10 + a; sum += tmp_num; } printf("您输入数字%d的前%d项之和为:>%d\n\n\n", a, n, sum); } else if (0 == a) //返回主菜单确认 { int exit_input = 0; printf("确认要返回主菜单吗?(Y/N):>"); while (1) { /* 清空输入缓冲区 */ int Clear_buffer = 0; while ((Clear_buffer = getchar()) != '\n'); /* 清空输入缓冲区 */ exit_input = getchar(); if ('Y' == exit_input || 'y' == exit_input) { flag = 0; //输入“Y”,标记改为0 printf("\n\n\n"); break; } else if ('N' == exit_input || 'n' == exit_input) { break; } else { printf("输入错误,请重新输入:>"); } } } else { printf("数字输入错误,请重新输入!\n"); } if (0 == flag) //识别到flag标记为0时,返回主菜单 { break; } } } //主函数 int main() { int input = 0; do { menu(); //打印菜单 printf("请选择:>"); scanf("%d", &input); switch (input) { case 1: fun_sum(); //求和计算函数 break; case 0: printf("退出程序成功!\n"); break; //退出程序 default: printf("输入错误,请重新输入!\n\n"); //输入错误提示! } } while (input); return 0; }