×

C语言 C语言学习随笔 C语言实例小程序 C语言增加练习

C语言增加练习:求a+aa+aaa+...+(n个a)之和

一哥 一哥 发表于2022-11-15 22:09:17 浏览713 评论0

抢沙发发表评论

程序设计目标:

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;
}


少长咸集

群贤毕至

访客