从零开始学编程---第一步-C语言(五)
最后来个总结,用程序表示
#include <stdio.h>
main()
{
char a,b[50];
printf("请输入第一个字符:\n");
scanf(" %c",&a);
getchar(); //获取前面的回车
printf("第一个的字符为:%c\n",a);
printf("请输入第二个字符:\n");
a=getchar();
printf("第二个字符为:");
putchar(a);
putchar('\n');
printf("请输入第一个字符串:\n");
scanf(" %s",&b);
getchar(); //获取前面的回车
printf("第一个的字符为:%s\n",b);
puts("请输入第二个字符串:");
gets(b);
puts("第二个字符串为:");
puts(b);
}
上面那几种输入输出函数应该都知道怎么用了吧
还有缓冲区,应该也知道个大概了吧,我可能说的不够详细,没办法让你真正了解,不过没关系,以后我们会对缓冲区进行全方位的了解,还会学到清空缓冲区的方法,这里你们主要该掌握一些基本的输入输出函数的用法,以及注意缓冲区留下来的回车
好了,输入输出介绍完毕
现在开始用C语言进行数学计算
在开始用C语言进行数学运算时,你就开始需要转动你的脑子了
我们进行的数学运算不会太难,如果数学不好的你也不用担心,目前一般的加减乘除就好了,我们一步步来
C语言有很多运算符,+(加) -(减) *(乘) / (除) =(等于)只是其中的5个,但也是最常用的5个
其中=号和数学里的不一样,数学里的=号,是两边对等的 如a=1 就可以写成 1=a,数学没有变量,a=1就a=1不能在变了,意思是a的本体就是1
但C语言的=号相当于赋值,如a=1,我们就从来没写过1=a
记住,你可以把C语言里的=号看成一个向左的箭头 ← 如a←1,意思就是把数字1存放在a里
变量可以进行运算
int a,b,c
a=b=c
a=b+c
a=a+b
a=b+3
a=b*3/4
但定义的时候不能进行运算,如int a+b 或int a=b不可以
当然直接赋值是可以的 如int a=0
printf()里也可以写数学表达式
printf("%d",a+3);
看程序
#include <stdio.h>
main()
{
int a,b,c;
printf("请输入2个数进行加法运算:\n");
scanf("%d%d",&a,&b);
c=a+b;
printf("%d+%d=%d\n",a,b,c);
printf("请输入2个数进行减法运算:\n");
scanf("%d%d",&a,&b);
c=a-b;
printf("%d-%d=%d\n",a,b,c);
printf("请输入2个数进行乘法运算:\n");
scanf("%d%d",&a,&b);
c=a*b;
printf("%d*%d=%d\n",a,b,c);
printf("请输入2个数进行除法运算:\n");
scanf("%d%d",&a,&b);
c=a/b;
printf("%d/%d=%d\n",a,b,c);
printf("请输入2个数进行求余运算:\n");
scanf("%d%d",&a,&b);
c=a%b;
printf("%d%%%d=%d\n",a,b,c);
}
像c=a+b这样的表达式绝对不能写成a+b=c,知道C语言=号的含义了吧
另外 c=a/b,除法的结果没有小数,因为没定义float类型
c=a%b;,%是一种运算符,是求余的意思,小学学过余数吧,例如7/2,结果是3.5
但7%2,等于7/2的余数,余数为1,所以7%2=1
printf("%d%%%d=%d\n",a,b,c); 里面有2个%连一起因为printf()不能单独显示%,需要用转义符%%来显示一个%
如果你连续打10个数字只空格最后才回车,结果如果?自己试试,呵呵,缓冲区的原理
我们可以按格式做运算
#include <stdio.h>
main()
{
int a,b,c;
printf("请输入2个数进行加法运算:\n");
scanf("%d+%d",&a,&b);
c=a+b;
printf("%d+%d=%d\n",a,b,c);
printf("请输入2个数进行减法运算:\n");
scanf("%d-%d",&a,&b);
c=a-b;
printf("%d-%d=%d\n",a,b,c);
printf("请输入2个数进行乘法运算:\n");
scanf("%d*%d",&a,&b);
c=a*b;
printf("%d*%d=%d\n",a,b,c);
printf("请输入2个数进行除法运算:\n");
scanf("%d/%d",&a,&b);
c=a/b;
printf("%d/%d=%d\n",a,b,c);
printf("请输入2个数进行求余运算:\n");
scanf("%d%%%d",&a,&b);
c=a%b;
printf("%d%%%d=%d\n",a,b,c);
}
scanf()里的+-*/%要照打
在数学运算里我们知道先乘除后加减,而在C语言中也是这样
a=5+2*3 结果是11 ,而非21
如果你要求平均数
a=a1+a2+a3+a4/4 这是求不出的,会先算后面的除法
需要打个括号
a=(a1+a2+a3+a4)/4 先括号内后括号外,数学这样,C语言也是这样
C语言的运算符也有优先级的,就是最先进行运算的符号
后面我们会慢慢接触到
在程序中,有时候我们经常不得不修改变量的值
如果我们要定义一个计数器变量,例如一个计算商店顾客变量,每来一个客人就自动加1
int a=0;
每来一个顾客自身加1
a=0+1;a=0+1+1;a=0+1+1+1 难道我们这样写吗,那太麻烦了
C语言可以这样写
a=a+1
在数学中,任何东西都不等于自身加1,但在计算机程序中,这是可以的,数学中a是不可变的,程序中a是可变的
程序中的=号相当于←向左的箭头,这里的意思是,将等号右边的任何东西取出,并讲计算出的值存储到左边的变量中
下面看程序
#include <stdio.h>
main()
{
int a=0;
a=a+1;
printf("第1次自加的a等于:%d\n",a);
a=a+1;
printf("第2次自加的a等于:%d\n",a);
a=a+1;
printf("第3次自加的a等于:%d\n",a);
a=a+1;
printf("第4次自加的a等于:%d\n",a);
a=a+1;
printf("第5次自加的a等于:%d\n",a);
a=a+1;
printf("第6次自加的a等于:%d\n",a);
}
a=a+1的用法我想你们应该已经熟悉了,还可以用a+=1来替代
这种自身改变值的方法其实是复合赋值,+=就是复合运算符
a=a+1 可以写成 a+=1
a=a-1 可以写成 a-=1
a=a*1 可以写成 a*=1
a=a/1 可以写成 a/=1
a=a%1 可以写成 a%=1
后者似乎又麻烦又难理解,但是后者对程序优化,加快运算速度相当有好处
所以要尽量熟悉后者的用法,并用于程序中
小心优先级,+=和+谁先运算?
a+=1+3 结果a等于多少?
+=的优先级要比+低,先+后+=
所以 a+=1+3 应该看成 a=a+(1+3) a=a+4
如果是a*=1+3 也是应该先运算+后运算*=
要看成 a=a*(1+3) 而不是 a=a*1+3,一定要注意加括号,没括号结果就不一样了
其中a=a+1 可以写成a++
a=a-1 可以写成a--
++和-- 是很重要的运算符,你们一定要掌握,在后面我们会经常用到
++是变量递增1 --是变量递减1
给变量a加1时
可以这样写a++ 也可以这样写 ++a
给变量a加1时
可以这样写a-- 也可以这样写 --a
一种在前一种在后是有区别的
如果在前,是变量先参与运算,变量最后再递增(或递减)
如果在后,是变量先递增(或递减)再参与运算
可以这样理解
a++ 先处理后自加
++a 先自加后处理
比如
int a=0;
printf("a=%d",a++);先处理,先打印a=0,然后再自加,最后a=1.(后面的++可以忽略掉)
int a=0;
printf("a=%d",++a);先自加,a=1,再处理,打印出a=1
另外如果a++和++a 单独是一个语句,没任何区别
如
int a=0;
a++; // 先处理,没什么处理的,再自加,a=1
printf("a=%d",a);
或
int a=0;
++a; //先自加,a=1,再处理,没什么处理的
printf("a=%d",a);
结果都是a=1
最新内容
热点内容
- QQ群
- 返回首页
- 返回顶部