从零开始学编程---第一步-C语言(五)

时间:2014-03-03 22:33    点击:

最后来个总结,用程序表示

#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



来源:幻想编程//所属分类:站长原创/更新时间:2014-03-03 22:33
顶一下
(19)
100%
踩一下
(0)
0%
上一篇:从零开始学编程---第一步-C语言(四)
下一篇:从零开始学编程---第一步-C语言(六)
相关内容