[关闭]
@0xl2oot 2017-03-27T04:49:21.000000Z 字数 5853 阅读 1290

C_环工_助教

关于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)和下划线(_)组成,并且第一个字符必须是字母或下划线。


  1. #include <stdio.h>
  2. int main(){
  3. int n,i,a=0,b=1,c;
  4. scanf("%d",&n);
  5. printf("%d ",b);
  6. for(i=2;i<=n;i++){
  7. c=a+b;
  8. printf("%d ",c);
  9. a=b;
  10. b=c;
  11. }
  12. return 0;
  13. }
  1. #include <stdio.h>
  2. #include <math.h>
  3. int main(){
  4. int n,m,i,j,k,s=0;
  5. scanf("%d",&n);
  6. m=pow(10,n-1);
  7. for(i=m;i<m*10;i++){
  8. k=i;
  9. for(j=1;j<=n;j++){
  10. s=s+pow(k%10,n);
  11. k=k/10;
  12. }
  13. if(s==i) printf("%d\n",i);
  14. s=0;
  15. }
  16. return 0;
  17. }
  1. #include <stdio.h>
  2. int main() {
  3. int n, m = 4, num = 1, sum = 0, i;
  4. scanf("%d", &n);
  5. for(i = 0; i < n; i++) {
  6. sum += num;
  7. printf("%d\n", num);
  8. num += m;
  9. m += 2;
  10. }
  11. printf("%d", sum);
  12. return 0;
  13. }
  1. #include <stdio.h>
  2. int main() {
  3. int a[4] = {153, 370, 371, 407};
  4. int b[3] = {1634, 8208, 9474};
  5. int c[3] = {54748, 92727, 93084};
  6. int d = 548834;
  7. int n, i;
  8. scanf("%d", &n);
  9. if(n == 3) {
  10. for(i = 0; i < 4; i++)
  11. printf("%d\n", a[i]);
  12. }
  13. else if(n == 4) {
  14. for(i = 0; i < 3; i++)
  15. printf("%d\n", b[i]);
  16. }
  17. else if(n == 5) {
  18. for(i = 0; i < 3; i++)
  19. printf("%d\n", c[i]);
  20. }
  21. else {
  22. printf("%d\n", d);
  23. }
  24. return 0;
  25. }
  1. #include <stdio.h>
  2. int main() {
  3. long a = 0L;
  4. double b = 0;
  5. double c = 0.01;
  6. int i;
  7. for(i = 0; i < 30; i++) {
  8. a += 100000L;
  9. b += c;
  10. c *= 2;
  11. }
  12. printf("%ld %.2f", a, b);
  13. return 0;
  14. }
  1. #include <stdio.h>
  2. int main() {
  3. int n, m, chk;
  4. scanf("%d %d", &n, &m);
  5. for(chk = 0; chk <= n; chk++) {
  6. if(chk*2 + (n-chk)*4 == m)
  7. printf("%d %d ", chk, n - chk);
  8. }
  9. return 0;
  10. }

  1. #include <stdio.h>
  2. int main() {
  3. int a, b, sum = 0, i, temp;
  4. scanf("%d%d", &a, &b);
  5. if(a > b)
  6. {
  7. temp = a;
  8. a = b;
  9. b = temp;
  10. }
  11. a = a%2 ? a : a + 1;
  12. b = b%2 ? b : b - 1;
  13. for(i = a; i <= b; i += 2)
  14. sum += i;
  15. printf("%d", sum);
  16. return 0;
  17. }
  1. #include <stdio.h>
  2. int main() {
  3. int a, b, c;
  4. scanf("%d%d%d", &a, &b, &c);
  5. printf("%s", ((a+b > c) && (((a-b > 0) ? (a-b) : (b-a)) < c)) ? "TRUE" : "FALSE");
  6. return 0;
  7. }
  1. #include <stdio.h>
  2. int main() {
  3. int A1, A2, B1, B2, C1, C2, flag;
  4. scanf("%d%d%d%d%d%d", &A1, &B1, &C1, &A2, &B2, &C2);
  5. if(A1 == A2) {
  6. if(B1 == B2) {
  7. if(C1 == C2)
  8. flag = 0;
  9. else if(C1 > C2)
  10. flag = 1;
  11. else
  12. flag = 2;
  13. }
  14. else if(B1 > B2)
  15. flag = 1;
  16. else
  17. flag = 2;
  18. }
  19. else if(A1 > A2)
  20. flag = 1;
  21. else
  22. flag = 2;
  23. switch(flag){
  24. case 0: printf("Same"); break;
  25. case 1: printf("First"); break;
  26. case 2: printf("Second"); break;
  27. }
  28. return 0;
  29. }
  1. #include <stdio.h>
  2. int main() {
  3. char a, b;
  4. scanf("%c %c", &a, &b);
  5. if((a == 'S' && b == 'J') || (a == 'J' && b == 'B') || (a == 'B' && b == 'S'))
  6. printf("FIRST");
  7. else if(a == b)
  8. printf("DEUCE");
  9. else
  10. printf("SECOND");
  11. return 0;
  12. }
  1. #include <stdio.h>
  2. int main() {
  3. int a, b;
  4. scanf("%d%d", &a, &b);
  5. if(a > b) {
  6. int temp = a;
  7. a = b;
  8. b = temp;
  9. }
  10. printf("%s", (a+1 == b) ? "TRUE" : "FALSE");
  11. return 0;
  12. }
  1. #include <stdio.h>
  2. int main() {
  3. int n;
  4. scanf("%d", &n);
  5. if(n < 0 || n > 100) {
  6. printf("Score is error!");
  7. return 0;
  8. }
  9. switch (n/10) {
  10. case 10:
  11. case 9: printf("A"); break;
  12. case 8: printf("B"); break;
  13. case 7: printf("C"); break;
  14. case 6: printf("D"); break;
  15. default:printf("E");
  16. }
  17. return 0;
  18. }
  1. #include <stdio.h>
  2. int main() {
  3. int a, b, c, max;
  4. scanf("%d%d%d", &a, &b, &c);
  5. max = a;
  6. max = max > b ? max : b;
  7. max = max > c ? max : c;
  8. printf("%d",max);
  9. return 0;
  10. }
  1. #include <stdio.h>
  2. int main() {
  3. int num, a, b, c;
  4. scanf("%d", &num);
  5. a = num/100;
  6. b = num/10%10;
  7. c = num%10;
  8. printf("%s", (a*a*a + b*b*b + c*c*c == num) ? "TRUE" : "FALSE");
  9. return 0;
  10. }
  1. #include <stdio.h>
  2. int main() {
  3. int n;
  4. scanf("%d",&n);
  5. printf("%s",(n%2)?"odd":"even");
  6. return 0;
  7. }
  1. #include <stdio.h>
  2. int main() {
  3. int n, m;
  4. scanf("%d %d", &n, &m);
  5. printf("%d", (m-n)>0 ? m-n : n-m);
  6. return 0;
  7. }
  1. // 92分数据测试有误,原因未知
  2. #include <stdio.h>
  3. int main() {
  4. char sex, sports, diet;
  5. float faHeight, moHeight, childHeight;
  6. scanf("%c %f %f %c %c", &sex, &faHeight, &moHeight, &sports, &diet);
  7. if(sex == 'M')
  8. childHeight = (faHeight + moHeight)*0.54;
  9. else
  10. childHeight = (faHeight*0.923 + moHeight)/2;
  11. if(sports == 'Y' && diet == 'Y')
  12. childHeight *= 1.0353;
  13. else if(sports == 'Y' && diet == 'N')
  14. childHeight *= 1.02;
  15. else if(sports == 'N' && diet == 'Y')
  16. childHeight *= 1.015;
  17. else
  18. ;
  19. printf("%.0f",childHeight);
  20. return 0;
  21. }
  1. #include <stdio.h>
  2. int main() {
  3. char c;
  4. scanf("%c",&c);
  5. if(c >= 48 && c <= 57)
  6. printf("1");
  7. else if(c >= 65 && c <= 90)
  8. printf("2");
  9. else if(c >= 97 && c <= 122)
  10. printf("3");
  11. else if(c == ' ')
  12. printf("4");
  13. else
  14. printf("5");
  15. return 0;
  16. }
  1. #include <stdio.h>
  2. int main() {
  3. char c;
  4. scanf("%c",&c);
  5. if(c >= 65 && c <= 90)
  6. c += 32;
  7. else if(c >= 97 && c <= 122)
  8. c -= 32;
  9. printf("%c %d", c, (int)c);
  10. return 0;
  11. }
  1. #include <stdio.h>
  2. int main()
  3. {
  4. char c;
  5. scanf("%c",&c);
  6. printf("%c %d",c-32,(int)(c-32));
  7. return 0;
  8. }
  1. #include <stdio.h>
  2. #include <math.h>
  3. int main()
  4. {
  5. float a,b,c;
  6. scanf("%f%f%f",&a,&b,&c);
  7. printf("%.4f %.4f",(-b+sqrt(b*b-4*a*c))/(2*a),(-b-sqrt(b*b-4*a*c))/(2*a));
  8. return 0;
  9. }
  1. #include <stdio.h>
  2. int main()
  3. {
  4. int n,a,b,c;
  5. scanf("%d",&n);
  6. n = n > 0 ? n : -n;
  7. a = n % 10;
  8. b = n % 100 / 10;
  9. c = n / 100;
  10. if(a)printf("%d",a);
  11. if(a || b)printf("%d",b);
  12. printf("%d",c);
  13. return 0;
  14. }
  1. #include <stdio.h>
  2. int main()
  3. {
  4. long a,b;
  5. float x,y;
  6. scanf("%ld,%ld",&a,&b);
  7. scanf("%f,%f",&x,&y);
  8. printf("a = %ld, b = %ld\n",a,b);
  9. printf("x = %.2f, y = %.2f\n",x,y);
  10. return 0;
  11. }
  1. #include <stdio.h>
  2. int main()
  3. {
  4. int a = 1;
  5. float b = 2.5;
  6. char c = 'A';
  7. printf("a = %d, sizeof(a) = %lu\n",a,sizeof(a));
  8. printf("b = %.1f, sizeof(b) = %lu\n",b,sizeof(b));
  9. printf("c = %c, sizeof(c) = %lu\n",c,sizeof(c));
  10. printf("End of program\n");
  11. return 0;
  12. }
  1. #include <stdio.h>
  2. int main()
  3. {
  4. float x = 2.5;
  5. float y = 2.5;
  6. float z = 2.5;
  7. printf("These values are :\n");
  8. printf("x = %.1f\n",x);
  9. printf("y = %.1f\n",y);
  10. printf("z = %.1f\n",z);
  11. return 0;
  12. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注