程序设计目标:
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;
}