进击的小白Day001——计算器(一)

自从来实习短短两三个月已经是被鄙视第二次了,是啊确实菜才会被鄙视,一天一百行代码起吗?好吧,不知道能不能坚持下去,能坚持多久,第一次在csdn上写东西,选择csdn来记录这个过程,不知道结果会怎么样,先来第一天吧。

刚开始接触编程,几乎没有任何编程经验,只是看了基本C的教材,纸上谈兵而已,在网上搜了一些C的小项目,一个一个的来吧,第一个是计算器。

最开始不知道该怎么写,去网上看了看别人写的代码,一般都是两位之间的计算,我就想改成多位的,加一些比较复杂的运算,像幂乘、开方之类的。

贴代码吧:

#define _CRT_SECURE_NO_WARNINGS  /*预定义常量,解决scanf不安全的报错,需要放在#include <stdio.h>之前*/
#include <stdio.h>
int main()
{
	/*各种定义*/
	int flag;
	int Add();
	int Sub();
	int Mul();
	int Div();
	
	/*引导*/
	printf("这是一个计算器,可以进行加、减、乘、除的运算。\n");
	
	/*选择运算模式*/
	printf("请选择需要运算的类型:\n");
	printf("1.加	2.减	3.乘	4.除\n");
	scanf("%d", &flag);
	while (1)
	{
		if (flag < 0 || flag > 4)
		{
			printf("输入有误,请重新输入:");
			scanf("%d", &flag);
		}
		else
		{
			break;
		}
	}
	
	/*进入运算*/
	if (flag == 1)
	{
		/*加法*/
		Add();
	}
	else if (flag == 2)
	{
		/*减法*/
		Sub();
	}
	else if (flag == 3)
	{
		/*乘法*/
		Mul();
	}
	else
	{
		/*除法*/
		Div();
	}

	return 0;
}

/*求和*/
int Add(void)
{
	/*各种定义*/
	int add;
	int a[100];
	int i, j;

	/*获取数字*/
	printf("请输入所有需要相加的数字,数字间以空格隔开:");
	i = 0;
	do
	{
		scanf("%d", &a[i++]);
	} while (getchar() != '\n');

	/*求和*/
	for (j = 0, add = 0; j < i; j++)
	{
		add = add + a[j];
	}

	printf("add=%d\n", add);
	return 0;
}

int Sub(void)
{
	/*各种定义*/
	int sub;
	int a[100];
	int i, j;

	/*获取数字*/
	printf("请输入所有需要相加的数字,数字间以空格隔开:");
	i = 0;
	do
	{
		scanf("%d", &a[i++]);
	} while (getchar() != '\n');

	/*求差*/
	for (j = 1, sub = a[0]; j < i; j++)
	{
		sub = sub - a[j];
	}

	printf("sub=%d\n", sub);
	return 0;
}

int Mul(void)
{
	/*各种定义*/
	int mul;
	int a[100];
	int i, j;

	/*获取数字*/
	printf("请输入所有需要相加的数字,数字间以空格隔开:");
	i = 0;
	do
	{
		scanf("%d", &a[i++]);
	} while (getchar() != '\n');

	/*求积*/
	for (j = 0, mul = a[0]; j < i; j++)
	{
		mul = mul * a[j];
	}

	printf("mul=%d\n", mul);
	return 0;
}

int Div(void)
{
	/*各种定义*/
	int div;
	int a[100];
	int i, j;

	/*获取数字*/
	printf("请输入所有需要相加的数字,数字间以空格隔开:");
	i = 0;
	do
	{
		scanf("%d", &a[i++]);
	} while (getchar() != '\n');

	/*求商*/
	for (j = 1, div = a[0]; j < i; j++)
	{
		div = div / a[j];
	}

	printf("div=%d\n", div);
	return 0;
}

这是今天写的程序,功能还不完善,只能实现最基本的加减乘除功能,而且只是针对整数的。

今天遇到的问题:

  1. 局部变量和全局变量怎么定义,命名规则是什么,命名规则这个东西还是要好好考究一下,最开始还是尽量养成好的变成习惯
  2. 在最开始选择运算模式的时候,输入整数不会报错,但输入浮点数,比如1.1,因为flag是整形,1.1会自动变成1,但在进去Add函数的时候会直接乱码,需要考虑一下
  3. 加减乘除只完成了整形的,因为加入浮点数之后对数组的赋值出问题了

需要完善的:

  1. 完善一下输入,如果在选择运算模式的时候输入浮点数,该怎么处理
  2. 运算中加入浮点数
  3. 加入异常输入处理,比如除法中除数为0
  4. 加入幂乘、开方运算

第一天就这样了,但愿明天可以坚持。

猜你喜欢

转载自blog.csdn.net/u011232393/article/details/83586883
今日推荐