前言:欢迎来到 Fountain芳腾 的博客,本文希望制作适合新手入门又可供有基础者提升的教程,若文中有错漏之处欢迎大家指正、补充。
编程第一步
先看上一节运行的这个最小 C 语言程序:
#include <stdio.h>
int main(){
printf("Hello World!\n");
}
运行结果是向屏幕打印一串文本:Hello World!,在编程中我们称这些文本为字符串。现在不需要知道 #include <stdio.h> 和 int main(){ } 这些语句是什么意思,只要记住要编写一个程序,不管怎样第一步先写好下面这样一个框架:
#include <stdio.h>
int main(){
}
然后就能往大括号里添加程序代码了,结合第1节的运行程序的方法,就能运行自己的程序了。
输出固定文本
继续看程序代码中的 printf(“Hello World!\n”) 命令,printf() 命令的作用是向屏幕输出字符串,括号里的文字就是要输出的字符串,字符串要用双引号"“包围,这样程序才知道这是个字符串而不是其它(例如以后要讲到的变量、函数等),所以 printf(“Hello World!\n”) 会输出 Hello World! 而不是 “Hello World!”,而 \n 是换行符,因为换行并不是像数字和字母这样可见的符号,所以使用 \n 代表一个换行的信号(如果我就是要输出”\n"而不是换行该怎么办,先不用着急)。
了解了printf()命令之后就可以输出各种字符了,例如我们想打印如下图案:
*
***
*****
*******
前面介绍了\n换行符,这里就可以用上了,在输出一行空格和星号后,使用\n换行,使得后面的空格和星号打印到下一行,最终的程序代码是这样:
#include <stdio.h>
int main(){
printf(" *\n ***\n *****\n*******\n");
}
运行结果:
如果是之前没有接触过编程的读者可能会奇怪为什么要用 \n 代表换行,而不是在字符串里直接换行,例如写成这样:
#include <stdio.h>
int main(){
printf("
*
***
*****
*******
");
}
这是因为在程序代码中直接换行是有特殊作用的,是作为代码的分隔标志使用,目的是使计算机更容易解析代码。现在可以不用了解,只有记住 \n 代表换行而不是直接在字符串中按下换行键。
输出数据
掌握了输出简单的字符串后,我们继续来学习输出得到的数据,例如有下面这一程序:
#include <stdio.h>
int main(){
int a = 6371;
int b = 384403;
int c = a + b;
printf("sum = %d\n", c);
}
这个程序是计算 a、b 两个数相加,然后将结果输出到屏幕。
先看 int a = 6371 这个指令,这是定义一个符号 a,值为 6371,这个符号 a 在编程中称之为变量,意思是 a 可以代表它所属类型的任何值,看你给它赋什么值。等号"=“在这里是赋值的意思,不同于数学里的等号表示 a 的值和 6371 相等,而是不管 a 以前等于多少,现在把 a 赋值为 6371。前面的 int 是 integer 的缩写,意思是整数,因为计算机使用不同的格式保存整数和实数等数据,所以要用 int 标明变量 a 是整数,计算机才能正确处理它。后面的分号”;“表示一个语句的结束,即声明这个变量 a 的行为已经结束了,后面执行其它指令。
下来的 int b = 384403; 指令与上面相同。然后是 int c = a + b; 指令,同样是定义一个变量,但不是给它一个字面上的值,而是将 a+b 的结果赋值给它。
最后还是 printf() 指令,因为我们不知道计算的结果是多少,但知道计算的结果保存在变量 c 里,所以我们可以这样 printf(”%d") ,用符号 %d 来表示我们需要输出一个变量的值,然后这样 printf("%d", c),把 c 带进去说明这个 %d 代表的值从变量 c 上取。
运行结果:
如果要换成减法,可以写成:
int c = a - b;
如果想做乘法和除法运算,这时就会发现键盘上并没有 x 和 ÷ 这两个符号,计算机程序使用 * 和 / 来代表乘法和除法,如下:
int c = a * b;
int c = a / b;
练习1:同时输出 a、b 的加、减、乘、除值。
输入数据
现在我们要在运行时输入变量a、b的值,如下:
#include <stdio.h>
int main(){
int a, b, c;
scanf("%d %d", &a, &b);
c = a + b;
printf("sum = %d\n", c);
}
这里我们把变量 a、b、c 的定义放在了同一行,即一个定义语句可以定义多个变量,这里并没有必要给它们赋初始值,但也可以像之前一样在定义的时候给变量赋值:
int a = 0, b = 0, c = 0;
scanf() 命令的功能是接收键盘输入,%d 在前面介绍过,即代表一个整数变量,scanf("%d %d") 就是需要输入两个整数,两个数之间用空格隔开。输入的数据保存在哪呢,所以要把变量 a、b 带进来,scanf("%d %d", &a, &b) 就是把输入的两个整数保存到变量 a 和 b,与输出的时候不同,需要在变量前加 & 符号,为什么要这样在以后的章节会说明。
运行程序,程序会停顿,等待用户输入:
如果在试图运行时弹出错误提示,则我们需要对项目设置进行修改。在主菜单选择”项目->属性“。在新窗口中选择”配置属性->C/C++ ->常规“,将”SDL检查“设置为”否“,点击”确定“。设置好就能继续正确运行程序了。
继续,我们输入两个数,以空格隔开:
按下回车键后程序就会继续执行下面的命令,输出计算结果:
练习2:输入三个数,计算三个数的和。
练习答案
练习1:
#include <stdio.h>
int main(){
int a = 6371;
int b = 384403;
printf("sum = %d\n", a + b);
printf("diff = %d\n", a - b);
printf("product = %d\n", a * b);
printf("div = %d\n", a / b);
}
练习2:
#include <stdio.h>
int main(){
int a, b, c, d;
scanf("%d %d %d", &a, &b, &c);
d = (a + b + c) / 3;
printf("svg = %d\n", c);
}