自从来实习短短两三个月已经是被鄙视第二次了,是啊确实菜才会被鄙视,一天一百行代码起吗?好吧,不知道能不能坚持下去,能坚持多久,第一次在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.1,因为flag是整形,1.1会自动变成1,但在进去Add函数的时候会直接乱码,需要考虑一下
- 加减乘除只完成了整形的,因为加入浮点数之后对数组的赋值出问题了
需要完善的:
- 完善一下输入,如果在选择运算模式的时候输入浮点数,该怎么处理
- 运算中加入浮点数
- 加入异常输入处理,比如除法中除数为0
- 加入幂乘、开方运算
第一天就这样了,但愿明天可以坚持。