前言(作者的闲话):
这篇文章里的内容仅仅是我自己自学C语言时的一些心得,因为不是专业的学过,所以会有部分偏差,也希望大家能挑刺并告诉我,我会进一步的更改。
我写这篇文章的原因是因为我在自学C语言的过程中的确感到了困难,所以我希望用更简单的语言让大家看懂学会。
什么是C语言:
在正式开始教编程前,让我们先简单的了解下C语言(可跳过)。
1972 年,Dennis Ritchie 设计了C语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级储存器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及等作业平台的许多计算机平台上进行编译。
准备:
既然要编程,我们不可能凭空编写吧,所以我们要进行一系列的准备:
现在优秀的写C语言的编译器的有:Visual C++ ,Clang ,GCC ,Turbo C 等。
但我用的是小熊猫C++,以为我觉得它非常好入手,下面是它的下载地址:百度云网盘(windows、linux和网友提供的macOS版本,中文cppreference离线chm文件,以及windowsxp实验版本)https://pan.baidu.com/s/1RZClddsyeKpiI19w56ahbA 分享码:u54x
手机上则推荐编译器:C语言编译器。(对,名字就这么直白)
C语言的头文件(有省流):
那什么是头文件呢,就像这样的东西(#include<stdio.h>),简单的来说,它就像是有许多编程函数的大仓库,有了它,编译器才能知道像 printf 这样的函数,可以增加代码效率。当然,你也可以不用,如果你强的话。
省流:强烈建议初学者一定一定要写头文件。
几个简单的编程函数:
ok,兄弟们,那我们认识认识几个简单的编程函数吧~
当然只是先教一点点的基础知识,更多的知识要再后面的编写程序里讲,所以这里会省略很多很多。
int main()程序:
在C语言中,int main() 函数是程序的入口,承担着启动整个程序执行的关键角色。这个小小的函数却有着巨大的影响,决定着程序的执行流程和最终的返回状态。
形式如下:
int main()
{
//主体
return 0;//返回指定程序的执行状态
}
当然 main() 里还可以装入两个参数,但这个会在后面讲到。
接下来就是返回值 return 了。main 函数的返回值通常用于指示程序的执行状态。约定是,返回值为 0 表示程序正常结束,而其他非零值通常表示程序发生了错误或异常情况。这一约定使得其他程序或脚本能够根据 main 函数的返回值来判断执行结果。
实例:
int main()
{
//主体
return 1;//返回非零值运行执行错误
}
在实际编程中,正确使用 main 函数的返回值可以使程序的执行状态更清晰可控。
储存数值:
在C语言里,有许多的储存数值的类型,像 int类型(整数型) , char类型(字符类型) , dobule类型(浮点数型),当然,这里我们先只学习第一种 int类型 。
这就像什么呢,就是在 int 的后面设定多个整数。
样例:
int n,m,x;
就像上面,我设定了三个未知整数,n,m,x,但它们现在还没有准确的值,那我们接着写。
样例:
int n,m,x;
n=1;
m=2;
x=3;
这样我们就给三个未知数附上了值,n=1,m=2,x=3。
但是,我们写的程序肯定不可能把所有的未知数都先赋值,需要在编译过程中输入数值,那么就需要输入函数了。
scanf()输入函数:
假设我们有一个未知数,我们需要在编译过程中给它赋值,就像计算器里输入数字一样,这里,我们先看一个样例:
int n;
scanf("%d",&n);
如上,我们先设了一个未知整数 n ,下面的 scanf() 函数就是在此时为 n 赋值。
当然,scanf() 里的格式是怎么样的,就先看几个示例就明白了:
1:
int n,m;
scanf("%d %d",&n,&m);
这里输入两个整数,且中间有空格。
2:
int n, m;
scanf("%d%d",&n,&m);
这里输入两个整数,且中间没有空格。
3:
int n,m,x;
scanf("%d %d %d",&n,&m,&x);
当然,以此类推。。。
总结:scanf() 里 "" 的 %d 是输入的值,而 & 后面的就是要给值的未知数。
又 %d 和 %d 之间就是输入数后额外要输入的东西,例如:
int n,m;
scanf("%d++++++%d",&n,&m);
在这里,我们必须在输入的两个数中间加上 ++++++ ,例如(1314++++++520),要不然就无法给 n,m 赋值了,但是此时 n=1314,m=520。
既然有输入了,那肯定要有输出啊。那接下来就讲讲输出。
printf() 输出函数:
既然我们要输出,那就要用 printf() 函数,那我们先看看样例再讲解吧。
示例:
1.
int n;
n=10086;
printf("%d",n);
这时我们就输出了 n 的值,为10086。
2.
int n,m;
n=1314,m=520;
printf("%d %d",n,m);
这时候输出的就是:1314 520。
3.
int n,m;
n=2,m=3;
printf("%d",n+m);
当然也可以这样写,此时输出的值是 5 。
看到这里大家差不多发现规律了吧,printf() 和 scanf() 其实是差不多的,在这里 %d 是输出的值,且 %d 和 %d 之间的符号之类的就是输出形式了。
什么!!你说你想输出一句话,嗷~,差点忘了,只需要把 "" 的改成一句话就行了,像这样:
printf("原神启动!");
此时就直接输出一句话“ 原神启动!”了。
什么!!你说你想输出一句话并夹带着一个未知数,哼哼~,我早有准备:
int n;
n=5201314;
printf("蔡xu坤%d",n);
此时就输出 “蔡xu坤5201314” ,嘿嘿~
几个计算的式子:
s=a+b; //s等于a和b的和
s=a-b; //s等于a和b的差
s=a*b; //s等于a和b的积
s=a/b; //s等于a和b的商 注:这个有很多的限制和使用条件,后面会讲
s=a%b; //s等于s取b的余
a>=b,a==b,a<=b; //在判断的函数里常用 注:在C语言里相等是==,赋值是=;
s=abs(x); //s等于x的绝对值
s=sqrt(x); //s等于x的开根
编写几个最简单的程序:
既然学了这些东西,肯定要现学现用啊,所以呢,就自己先写几个简单的程序吧。
1.写一个程序,要求输出一句话 “Hello World!”
2.设两个未知数n,m,要求两个输入之间要有空格,输出它们的和。(输入:5 6 输出:11)
3.设两个未知数n,m,要求两个输入之间要有空格,输出它们的积,输出时的格式为“n与m的积为XXX”。(输入:2 4 输出:2和4的积为8)。
答案在下面
1.
#include<stdio.h>
int main()
{
printf("Hello World!");
return 0;
}
2.
#include<stdio.h>
int main()
{
int n,m,s; //设s为n和m的和
s=n+m;
printf("%d",s);
return 0;
}
3.
#include<stdio.h>
int main()
{
int n,m,s; //设s为n与m的积
s=n*m;
printf("%d和%d的积为%d",n,m,s);
return 0;
}
正式学习(1):
while()循环:
这里我们先学一个简单的循环函数 while() 。我们先来看看它在程序里的作用吧
int main()
{
int n=0;
while(n<10){
printf("我是小黑子\n");
n=n+1;
}
while() 里的()里是填入循环要求,就像上面的例子,() 里是 n<10 ,即,当n小于10时开始循环,循环的是 while() 后 {xxxx} 里的内容。那...我们怎么限制它循环的次数呢?看上面的 n=n+1 ,在循环里就是每循环一次 n 的值就加 1 ,直到在循环到第十次(即 n 为十时),不满足 n<10 ,那么循环结束,运行到下一步。下面再来看看几个示例再来熟悉熟悉吧:
1.
int main()
{
int n=0,m=10;
while(n<5){
m=m+10;
n++; //n++就是n=n+1
}
}
printf("%d",m);
这里循环了5次,此时m=60。
2.
int main()
{
int n=0,m,s=0;
while(n<=5){
scanf("%d",&m);
s+=m; //s+=m 就是 s=s+m
n++;
}
}
printf("%d",s);
看到不一样的吗,我把 scanf() 放在了循环里了,这是对的,也就是说在每次循环时都要输入一个数 m 。当然,输入也可以放在循环里。
3.
int main()
{
while(1){
printf("曼波~\n");
}
}
对的,当在 () 里输入 1 时,这个循环就会进入无限循环,至于怎么逃出这个循环,会在后面的判断里讲。
不知道大家看到这里能否消化,如果不是很明白,这是 while() 的格式,不懂事的等开始刷题后就会逐渐明白的。
while( 条件 ){
//循环体
}
那好(鼓掌),既然看到这里了,那就奖励自己一道简单的编程题吧,嘿嘿~(偷笑)
作业:
设计一道程序,当你输入一个正整数,会自动输出这个数的前n项和。(例:输入: 5 输出: 15)(是不是突然上难度啦~嘿嘿~那我就小提示一下啦,和上面的第2个示范差不多哦~)
答案:(仔细看看吧~)
#include <stdio.h>
int main()
{
int n=1,m,s=0; //s就是前n项和
scanf("%d",&m);
while(n<=m){ //当n小于等于m时循环
s+=n; //s加上此时的n的值
n++; //n加一
}
printf("%d",s);
return 0;
}