C語(yǔ)言預(yù)課課堂筆記
循環(huán)流程控制
- while循環(huán)
while(條件
{
語(yǔ)句體于樟;
}
分析:先判斷條件是否成立艘希,成立就執(zhí)行while{}里面的語(yǔ)句硼身,再回過(guò)頭去判斷條件成立與否.......
while注意點(diǎn):
while(1)
{
}
快速入門(mén):
int i=1;
int sum=0;
while(i<=100)
{
sum=sum+i;
i=i+1;
}
printf("sum=%d\n",sum);
練習(xí):
- 計(jì)算1~100所有偶數(shù)和(while硅急、if)
int a,l=0;
scanf("%d",&a);
while((a/10)!=0)
{
l++;
}
printf("%d\n",l);
1X1=1
1X2=2 2X2=4
1X3=3 2X3=6 3X3=9
….
1X9=9 2X9=18 3X9=27…..9X9=81
#include "stdio.h"
int main()
{
int i,j;
for (i=1;i<=9;i++)
{
for (j=1;j<=i;j++)
{
printf("%d*%d=%02d ",i,j,i*j);
if (i==j)
printf("\n");
}
}
}
- do—while循環(huán)
do
{
語(yǔ)句體;
}while(條件);```
分析:先執(zhí)行語(yǔ)句體佳遂,再去判斷條件营袜,條件成立,繼續(xù)執(zhí)行丑罪,直到條件不成立.....
do-while注意點(diǎn):
1>實(shí)現(xiàn)死循環(huán)
do
{
}while(1);
- for循環(huán)
for(表達(dá)式1荚板;表達(dá)式2;表達(dá)式4)
{
語(yǔ)句3吩屹;
}
-
分析:
- 首先執(zhí)行表達(dá)式1跪另,表達(dá)1有且只執(zhí)行一次
- 判斷表達(dá)式2是否成立,如果成立煤搜,就執(zhí)行for{}里面的語(yǔ)句
- for{}里面的語(yǔ)句都執(zhí)行完成之后免绿,再執(zhí)行表達(dá)式4
- 再執(zhí)行上步驟2,3
-
for循環(huán)的注意點(diǎn):
- 表達(dá)式1擦盾,表達(dá)式2针姿,表達(dá)式3都可以省略,但是分號(hào)不能省略厌衙;
- 當(dāng)表達(dá)式2省略時(shí)距淫,for循環(huán)就相當(dāng)于一個(gè)死循環(huán)
快速入門(mén):
int i,sum=0;
for(i=1;i<=100;i++)
{
sum=sum+i;
}
printf("sum=%d\n",sum);
1>計(jì)算1~100奇數(shù)和,使用for循環(huán)實(shí)現(xiàn)
#include "stdio.h"
int main()
{
int i,j=0;
for (i=1;i<=100;i++)
{
if(i%2!=0)
j+=i;
}
printf("%d\n",j);
}
循環(huán)流程控制注意點(diǎn)
- 三個(gè)循環(huán)可以相互嵌套
- 在使用死循環(huán)盡量用while(1)
- 掌握while和for,理解do-while的用法
- 嵌套最好不要超過(guò)3層
break和continue的用法:
break使用場(chǎng)合:switch,for 婶希, do-while,while
continue使用的場(chǎng)合:for,do-while ,while
快速入門(mén):
int i=1,sum=0;
while(i<=100)
{
if(i==10)
{
break;
}
sum+=i;
i++;
}
printf("sum=%d\n",sum);
分析:
- break是跳出整個(gè)循環(huán)
- break只能跳出一層循環(huán)
- 當(dāng)碰到break語(yǔ)句時(shí)榕暇,break下面的語(yǔ)句至循環(huán)的}里面剩下的語(yǔ)句就都不會(huì)被執(zhí)行
- for里面表達(dá)式4不會(huì)被執(zhí)行
continue快速入門(mén)
int i=1,sum=0;
for(;i<=100;i++)
{
if(i%10==3)
{
continue;
}
sum+=i;
}
printf("sum=%d\n",sum);
由上分析:
- continue是跳出本層循環(huán)中的一次循環(huán),繼續(xù)執(zhí)行下面的循環(huán)
- 碰到continue時(shí)喻杈,continue下面的語(yǔ)句直到本層循環(huán)}里面的語(yǔ)句不會(huì)被執(zhí)行
- for表達(dá)式4會(huì)繼續(xù)執(zhí)行
- 數(shù)組
11.1. 數(shù)組的定義
int arr[10];
11.2. 數(shù)組的初始化
int arr[5]={1,2,3};
int arr[5]={[3]=1,[4]=2};
int arr[]={1,2,3};
11.3. 數(shù)組定義和初始化的注意點(diǎn)
- []里面的數(shù)必須要是常量
- 數(shù)組元素是從下標(biāo)0開(kāi)始
- 不允許初始這么一個(gè)數(shù)組int arr[]={};int arr[];
- 元素個(gè)數(shù)不能大于數(shù)組大小
- 數(shù)組元素是變量
- 重要:數(shù)組不能定義完再進(jìn)行整體賦值彤枢,以下寫(xiě)法非法
int arr[5];
arr[5]={1,2,3,4,5};
4>數(shù)組元素的訪問(wèn)
數(shù)組名[訪問(wèn)下標(biāo)];0<=下標(biāo)范圍<數(shù)組大小
- 定義一個(gè)整型數(shù)組筒饰,求出這個(gè)數(shù)組當(dāng)中的最大值和最小值缴啡,輸出最大值和最小值,
思想:遍歷比較
晚上作業(yè)
*
***
*****
*******
*****
***
*
int main()
{
int line,num,space,s;
scanf("%d",&s);
for (line=1;line<=s;line++)
{
if(line<=(s+1)/2)
{
for (space=1;space<=(s+1)/2-line;space++)
{
printf(" ");
}
for (num=1;num<=2*line-1;num++)
{
printf("*");
}
printf("\n");
}
if(line>(s+1)/2)
{
for (space=(s+1)/2;space<=line-1;space++)
{
printf(" ");
}
for (num=1;num<=2*((s+1)-line)-1;num++)
{
printf("*");
}
printf("\n");
}
}
return 0;
/* int a,l=0;
scanf("%d",&a);
while((a/10)!=0)
{
l++;
}
printf("%d\n",l);*/
}```
*
***
*****
*******
```int i,j,k;
for (i=1;i<9;i++)
{
for (k=1;k<9-i;k++)
{
printf(" ");
}
for (j=1;j<=2*i-1;j++)
{
printf("*");
}
printf("\n");
}
return 0;
- 輸入一個(gè)數(shù)瓷们,顛倒這個(gè)數(shù)业栅,將其輸出,比如
123456====》654321谬晕; - 判斷輸入的一個(gè)整數(shù)是否是回文數(shù)
回文數(shù):12321:對(duì)稱(chēng)的數(shù)
#include "stdio.h"
int main()
{
int i,j,a;
scanf("%d",&a);
i=a;
while(a)
{
j=j*10+a%10;
a=a/10;
}
printf("%d",j);
if(j==i)
printf("是回文");
else
printf("不是回文");
}
- 將一個(gè)整數(shù)數(shù)組里面的數(shù)左右顛倒碘裕,比如:
int arr[5]={1,2,3,4,5,6};
int arr[5]={6,5,4,3,2,1};
5>復(fù)習(xí)
//求100~200之間所有的素?cái)?shù)
結(jié)果:
(1)i能整除2~i-1某一個(gè)數(shù),跳出內(nèi)層循環(huán)
(2)i不能整除2~i-1任何一個(gè)數(shù)攒钳,
#include "stdio.h"
int main()
{
int i,j;
for (i=100;i<200;i++)
{
for (j=2;j<i;j++)
{
if(i%j==0)
break;
}
if (j<i)
printf("%d不是素?cái)?shù)\n",i);
if (j==i)
printf("%d是素?cái)?shù)\n",i);
}
}
//輸入兩個(gè)數(shù)帮孔,輸入一個(gè)運(yùn)算符,計(jì)算結(jié)果不撑。
#include "stdio.h"
int main()
{
int i,j;
for (i=100;i<200;i++)
{
for (j=2;j<i;j++)
{
if(i%j==0)
break;
}
if (j<i)
printf("%d不是素?cái)?shù)\n",i);
if (j==i)
printf("%d是素?cái)?shù)\n",i);
}
}
//定義一個(gè)數(shù)組文兢,將其中的數(shù)字前后互換
#include "stdio.h"
int main()
{
int a[100],i,j;
int t,temp;
scanf("%d",&t);
getchar();
for(i=0;i<t;i++)
{
scanf("%d",&a[i]);
// scanf("%d%d%d%d%d",&a[0],&a[1],&a[2],&a[3],&a[4]);
getchar();
}
for(j=0;j<t;j++)
{
printf("%d",a[j]);
}
printf("\n");
for(i=0;i<t/2;i++)
{
// for(j=t-i;j>t/2;j--)
// {
temp=a[t-i-1];
a[t-i-1]=a[i];
a[i]=temp;
// }
}
for(j=0;j<t;j++)
{
printf("%d",a[j]);
}
}