周总结

开学以来,从学习什么是程序、程序设计语言到了解C语言的基本框架,再到学习用C语言写一下简单的程序,已经对编程有了一个大致的认识。

下面是一些在学习中总结的经验与在学校与解答是常见的错误:

  1. scanf忘记加取址符,这个问题很常见,而且编译时不会有问题,很多同学在最初编程时都经常犯错。
  2. 初始化。这个问题经常会没有意识到,因为有些程序在运行时,变量本身在电脑中储存的值就是1或者0,因此程序运行没有出错。

例如:

#include<stdio.h>

int main()
{
int n;
int product;
scanf("%d",&n);
for(int i=1;i<=n;i++){
product*=i;
}
printf("%d",product);

return 0;
}

 这个代码在运行时的确答案正确,因为电脑中product的值本身就为1,但如果换一台设备就有可能是错的,虽然是一个很小的细节,但也是非常重要的。尤其是对变量一上来就使用a++,a+=,a*=这类的运算。

3.  因为在数学学习上养成的惯性,我们有时会理所应当的认为数字与字母写在一起就是相乘,例如2a,会默认为它是2*a,所以在写程序时,忘掉了*号,导致错误。

4.  判断。在C语言中=与==是两种完全不同的意思。一定要注意条件判断时==不要写成=。例如a=b与a==b,前者是把a 的值赋给b,后者是判断a与b的值是否相同,为关系运算,其结果只有两种可能:true(1) or false(0)。因此在做if语句或者while循环的条件时,对于t!=0可以直接简写成if(t)和while(t)。

5.  有关于条件判断。不等式条件判断不可以连写,例如a<=b<=c,应该写成啊a<=b&&b<=c。(ps.=赋值可以连等a=b=c=0)

6.  标识符的命名。只能包含数字、字母、下划线,不能以数字开头,不能时C语言中的关键字,例如int if goto等等。

7.  switch语句中,每个case语句后的break要记得加上,不然会执行接下来的case语句。

8.  整数和浮点数。*和/两种运算,当符号两边数字均为int 类型时,结果是int不会是double,若需要结果为浮点数则改变运算数字的类型或*1.0

9. 

一些小tips:

(1)运用for循环,for(i=0;i<N;i++),i=0开始而不是i=1,在以后运用数组时会方便很多。

(2)运用变量t=0和t=1的转换简化判断

#include<stdio.h>

 

int main()

{

       int x,y,result,t=1;

       char c;

       scanf("%d %c %d",&x,&c,&y);

       switch(c){

              case '+':result=x+y;break;

              case '-':result=x-y;break;

              case '*':result=x*y;break;

              case '/':result=x/y;break;

        case '%':result=x%y;break;

              default:printf("ERROR");t=0;break;

       }

    if(t)

       printf("%d",result);

   

    return 0;

}

posted @ 2021-09-25 22:53  刘芷萱  阅读(57)  评论(0编辑  收藏  举报