
笔记里面有一些代码的首字母是大写的,自己写时候要用小写,这是OneNote编写时软件的问题。此笔记仅是我个人学习的笔记,接下来会持续更新,希望对初学者有所帮助,如果发现错误,望在评论区指正。
if语句: if (表达式) 语句; while语句: while (表达式) 语句;(或者是加{}代码块)
练习:在屏幕上打印1-10的值
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;
while (i < 10)
{
printf("%d\n", i);
i++;
}
return 0;
}练习:输入一个正的数,逆序打印这个数的每一位
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;
int n = 0;
scanf("%d", &i);
while (i)
{
n = i % 10;
printf("%d ", n);
i /= 10;
}
return 0;
}for(表达式1,表达式2,表达式3) 语句;(或者是加{}代码块) 表达式1⽤于循环变量的初始化; 表达式2⽤于循环结束条件的判断; 表达式3⽤于循环变量的调整;
(表达式1初始化→表达式2判断→循环语句→表达式3调整) 其实和while循环的差别在于,调整的表达式3放在了for里面
练习:在屏幕上打印1~10的值
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1;i < 10;i++)
printf("%d\n", i);
return 0;
}while循环代码比较分散 for循环代码比较集中 代码较多时,for维护起来比较方便
计算1~100之间3的倍数的数字之和
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;
int sum1 = 0;
for (i = 3; i < 100; i += 3)
sum1 = sum1 + i;
printf("%d\n",sum1);
return 0;
}##do-while循环
do 语句; while(表达式);
与while类似,不过do-while是先执行一次语句
输入一个整数,判断这个整数有多少位
//方法一
#define _CRT_SECURE_NO_WARNINGS 1
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>
int main()
{
int num = 0;
int i = 0;
scanf("%d", &num);
if (num == 0)
printf("1")
else
{
for (i = 0;num / (int)pow(10, i);i++)
;
printf("%d\n", i);
}
return 0;
}
//方法二
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>
int main()
{
int num = 0;
int i = 0;
scanf("%d", &num);
do
{
i++;
num = num / 10;
} while (num)
printf("%d",i);
return 0;
}这里方法二使用了do-while循环,不是必须使用do-while循环但是因为n存在为0的情况,所以最好i先变为1。
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
break;//当i等于5后,就执⾏break,循环就终⽌了
printf("%d ", i);
i = i+1;
}
return 0;
}
//1 2 3 4 //把上面代码里的break换为comtinue
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
continue;//continue之后就直接跳过后面代码,去判断循环的地方
//导致i一直为5
printf("%d ", i);
i = i+1;
}
return 0;
}
//1 2 3 4 5 5 5 …….#include <stdio.h>
int main()
{
int i = 1;
for(i=1; i<=10; i++)
{
if(i == 5)
break;
printf("%d ", i);
}
return 0;
}
//1 2 3 4 #include <stdio.h>
int main()
{
int i = 1;
for(i=1; i<=10; i++)
{
if(i == 5)
continue;//这里continue只是跳过后面的打印,然后返回语句3
printf("%d ", i);
}
return 0;
}
//1 2 3 4 6 7 8 9 10 与while中几乎完全一致
找出100~200之间的素数,并打印在屏幕上
//方法1
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main(){
int i = 0;
for (i= 100;i <= 200;i += 1) //循环产生100-200的数字
{
int j = 1;
int flag = 1;
for(j = 2;j < i - 1;j++)
{
if (i% j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
printf("%d ", i);
}
return 0;
}
//方法二
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>
int main()
{
int i = 0;
for (i = 100;i <= 200;i++)
{
int j = 0;
int flag = 1;
for (j = 2; j <= sqrt(i);j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
printf("%d ", i);
}
return 0;
}C语言规定了一种特别的语法,即使用goto和跳转符号可以实现同一个函数设置好的标号处。 例如:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
printf("hello\n");
goto next;
printf("hello\n");
next :
printf("hi\n");
return 0;
}goto可以减少break的次数 例如当需要跳出多层循环时,goto就显得十分高效