@0xl2oot
2017-03-27T04:49:21.000000Z
字数 5853
阅读 1384
关于C语言教学的一点思考
American Standard Code for Information Interchange
48-57 数字 65-90 大写 97-122 小写
准备一张纸一支笔
写程序其实是在做数学题,只不过你需要按照程序的思维方式来思考问题,看到一个问题,先把他当做一个数学问题,然后在转换成程序能理解的语句,比如IF判断,赋值语句(比如说一个求最大值的问题),那么这样想来,一旦你学会了基本的语句,那么你解题的时间应该是80%在思考数学题,20%在写代码,在思考的过程中,可以拿只笔写写算算。
然后再来从写程序的角度来思考,计算机是不会思考的,更不会凭空生成数据,程序运算的数据是人来提供的,所以要给程序提供数据,数据计算完成之后,你不写printf语句,程序也不会把结果呈现在屏幕上。
所以程序开始就要读入数据scanf,那么把数据读到哪里呢,这时候就需要我们定义一个变量,变量现在学的就是 int float double char ,把数据读入到定义好的变量后,就可以进行计算了,计算无非是 + - * / % 这几个,这里要随时注意运算后的结果是不是正确的数据类型,最后打印到屏幕上(标准输出设备),打印出来的时候可以选择打印的格式,就像用 Word Excel 一样,可以对齐,可以取小数,还可以强制转换数据类型。
另外一点值得注意的是要考虑程序的健壮性,什么是程序的健壮性呢,当然这个概念你们可能不会接触的很多,但是在有些题目中会出现这样的情况(比如一个三位数,要求输出相反顺序的数字,我输入了200,那么你返回了002,那么这个程序就没有足够的健壮性),这是最简单的例子,还有一些例子是你们写的程序都是要求输入特定数据的,那么我偏不输入特定数据,这样程序很可能会崩溃,好的程序应该能做到防止用户输入垃圾数据的能力。
写程序的目的是解题,那么解题的办法就没有限制了,只要能解出题来,任何一种方法都可以,比如判断三位水仙花数的问题,我们可以用搜索引擎搜到,三位水仙花数只有四个数,那么我们输入一个数进行判断时,就可以只跟这四个数进行比较。
三目运算符 a ? b : c;1978年,丹尼斯·里奇(Dennis Ritchie)和布莱恩·科尔尼干(Brian Kernighan)出版了一本书,名叫《The C Programming Language》K&R C ANSI C、ISO C、C89、C90
我不是很了解环工这个专业到底是做什么的,但是在环境工程这个领域中,也可能用到很多计算机的知识,比如说一个环境问题,处理这个环境问题一定会有大量的数据产生,那么如何处理这些数据,就需要用到编程了,另外还有常用的GPS,GIS系统等等,比如常用的MATLAB,Python,看起来好像和C语言没有多大的关系,但实际上,编程语言都是相通的,一旦学会了一门编程语言,就可以在较短的时间内学会其他的编程语言,另外有人说Python简单,直接学Python就好了啊,事实上Python中的知识远远要比C语言复杂的多,只是大部分人都他表面的语法给误导了。C语言应该算是最简洁的语言,单词很少,运行速度快,K&R C一直是经典。
单片机的开发,智能小车,无人机开发等等
不搞算法,知道加减乘除就可以了标识符就是程序员自己起的名字,除了变量名,后面还会讲到函数名、宏名、结构体名等。不过,名字也不能随便起,C语言规定,标识符只能由字母(A~Z, a~z)、数字(0~9)和下划线(_)组成,并且第一个字符必须是字母或下划线。
#include <stdio.h>int main(){int n,i,a=0,b=1,c;scanf("%d",&n);printf("%d ",b);for(i=2;i<=n;i++){c=a+b;printf("%d ",c);a=b;b=c;}return 0;}
#include <stdio.h>#include <math.h>int main(){int n,m,i,j,k,s=0;scanf("%d",&n);m=pow(10,n-1);for(i=m;i<m*10;i++){k=i;for(j=1;j<=n;j++){s=s+pow(k%10,n);k=k/10;}if(s==i) printf("%d\n",i);s=0;}return 0;}
#include <stdio.h>int main() {int n, m = 4, num = 1, sum = 0, i;scanf("%d", &n);for(i = 0; i < n; i++) {sum += num;printf("%d\n", num);num += m;m += 2;}printf("%d", sum);return 0;}
#include <stdio.h>int main() {int a[4] = {153, 370, 371, 407};int b[3] = {1634, 8208, 9474};int c[3] = {54748, 92727, 93084};int d = 548834;int n, i;scanf("%d", &n);if(n == 3) {for(i = 0; i < 4; i++)printf("%d\n", a[i]);}else if(n == 4) {for(i = 0; i < 3; i++)printf("%d\n", b[i]);}else if(n == 5) {for(i = 0; i < 3; i++)printf("%d\n", c[i]);}else {printf("%d\n", d);}return 0;}
#include <stdio.h>int main() {long a = 0L;double b = 0;double c = 0.01;int i;for(i = 0; i < 30; i++) {a += 100000L;b += c;c *= 2;}printf("%ld %.2f", a, b);return 0;}
#include <stdio.h>int main() {int n, m, chk;scanf("%d %d", &n, &m);for(chk = 0; chk <= n; chk++) {if(chk*2 + (n-chk)*4 == m)printf("%d %d ", chk, n - chk);}return 0;}
#include <stdio.h>int main() {int a, b, sum = 0, i, temp;scanf("%d%d", &a, &b);if(a > b){temp = a;a = b;b = temp;}a = a%2 ? a : a + 1;b = b%2 ? b : b - 1;for(i = a; i <= b; i += 2)sum += i;printf("%d", sum);return 0;}
#include <stdio.h>int main() {int a, b, c;scanf("%d%d%d", &a, &b, &c);printf("%s", ((a+b > c) && (((a-b > 0) ? (a-b) : (b-a)) < c)) ? "TRUE" : "FALSE");return 0;}
#include <stdio.h>int main() {int A1, A2, B1, B2, C1, C2, flag;scanf("%d%d%d%d%d%d", &A1, &B1, &C1, &A2, &B2, &C2);if(A1 == A2) {if(B1 == B2) {if(C1 == C2)flag = 0;else if(C1 > C2)flag = 1;elseflag = 2;}else if(B1 > B2)flag = 1;elseflag = 2;}else if(A1 > A2)flag = 1;elseflag = 2;switch(flag){case 0: printf("Same"); break;case 1: printf("First"); break;case 2: printf("Second"); break;}return 0;}
#include <stdio.h>int main() {char a, b;scanf("%c %c", &a, &b);if((a == 'S' && b == 'J') || (a == 'J' && b == 'B') || (a == 'B' && b == 'S'))printf("FIRST");else if(a == b)printf("DEUCE");elseprintf("SECOND");return 0;}
#include <stdio.h>int main() {int a, b;scanf("%d%d", &a, &b);if(a > b) {int temp = a;a = b;b = temp;}printf("%s", (a+1 == b) ? "TRUE" : "FALSE");return 0;}
#include <stdio.h>int main() {int n;scanf("%d", &n);if(n < 0 || n > 100) {printf("Score is error!");return 0;}switch (n/10) {case 10:case 9: printf("A"); break;case 8: printf("B"); break;case 7: printf("C"); break;case 6: printf("D"); break;default:printf("E");}return 0;}
#include <stdio.h>int main() {int a, b, c, max;scanf("%d%d%d", &a, &b, &c);max = a;max = max > b ? max : b;max = max > c ? max : c;printf("%d",max);return 0;}
#include <stdio.h>int main() {int num, a, b, c;scanf("%d", &num);a = num/100;b = num/10%10;c = num%10;printf("%s", (a*a*a + b*b*b + c*c*c == num) ? "TRUE" : "FALSE");return 0;}
#include <stdio.h>int main() {int n;scanf("%d",&n);printf("%s",(n%2)?"odd":"even");return 0;}
#include <stdio.h>int main() {int n, m;scanf("%d %d", &n, &m);printf("%d", (m-n)>0 ? m-n : n-m);return 0;}
// 92分数据测试有误,原因未知#include <stdio.h>int main() {char sex, sports, diet;float faHeight, moHeight, childHeight;scanf("%c %f %f %c %c", &sex, &faHeight, &moHeight, &sports, &diet);if(sex == 'M')childHeight = (faHeight + moHeight)*0.54;elsechildHeight = (faHeight*0.923 + moHeight)/2;if(sports == 'Y' && diet == 'Y')childHeight *= 1.0353;else if(sports == 'Y' && diet == 'N')childHeight *= 1.02;else if(sports == 'N' && diet == 'Y')childHeight *= 1.015;else;printf("%.0f",childHeight);return 0;}
#include <stdio.h>int main() {char c;scanf("%c",&c);if(c >= 48 && c <= 57)printf("1");else if(c >= 65 && c <= 90)printf("2");else if(c >= 97 && c <= 122)printf("3");else if(c == ' ')printf("4");elseprintf("5");return 0;}
#include <stdio.h>int main() {char c;scanf("%c",&c);if(c >= 65 && c <= 90)c += 32;else if(c >= 97 && c <= 122)c -= 32;printf("%c %d", c, (int)c);return 0;}
#include <stdio.h>int main(){char c;scanf("%c",&c);printf("%c %d",c-32,(int)(c-32));return 0;}
#include <stdio.h>#include <math.h>int main(){float a,b,c;scanf("%f%f%f",&a,&b,&c);printf("%.4f %.4f",(-b+sqrt(b*b-4*a*c))/(2*a),(-b-sqrt(b*b-4*a*c))/(2*a));return 0;}
#include <stdio.h>int main(){int n,a,b,c;scanf("%d",&n);n = n > 0 ? n : -n;a = n % 10;b = n % 100 / 10;c = n / 100;if(a)printf("%d",a);if(a || b)printf("%d",b);printf("%d",c);return 0;}
#include <stdio.h>int main(){long a,b;float x,y;scanf("%ld,%ld",&a,&b);scanf("%f,%f",&x,&y);printf("a = %ld, b = %ld\n",a,b);printf("x = %.2f, y = %.2f\n",x,y);return 0;}
#include <stdio.h>int main(){int a = 1;float b = 2.5;char c = 'A';printf("a = %d, sizeof(a) = %lu\n",a,sizeof(a));printf("b = %.1f, sizeof(b) = %lu\n",b,sizeof(b));printf("c = %c, sizeof(c) = %lu\n",c,sizeof(c));printf("End of program\n");return 0;}
#include <stdio.h>int main(){float x = 2.5;float y = 2.5;float z = 2.5;printf("These values are :\n");printf("x = %.1f\n",x);printf("y = %.1f\n",y);printf("z = %.1f\n",z);return 0;}