变量使用定义必须在函数外
循环
for循环
格式:(表达式1;表达式2;表达式3)
{
代码段
}
表达式1:变量赋初值
表达式2:终止条件
表达式3:增值或减值,表达式3只能用++ -- 或者+=一类的,不能用例如i+1
执行顺序:首先执行表达式1进行赋值,然后判断表达式2是否成立,如果成立就进入循环执行语句块,再执行表达式3进行增值或减值然后继续判断表达式2是否成立,直到表达式2不成立退出循环
练习:求1-10之间的奇数和
变形
原始:
int i;
for (i=0;i<4;i++)
{
printf("%d",i);
}
变形1
int i=0;
for (;i<4;i++);
{
printf("%d",i);
}
变形2
int i;
for (;i<4;)
{
printf ("%d",i);
i++
}
变形3
int i=0;
for(;;)
{
printf("%d",i);
} //死循环,表达式2,永远成立
嵌套
for(表达式1;表达式2;表达式3)
{
for(表达式1;表达式2;表达式3)
{}
}
外层执行一次,内层循环一轮
int i,j;
for (i=0;i<10;i++)
{
for (j=0;j<=i;j++)
{
printf ("%d*%d=%2d",i,j,i*j);
}
printf ("\n");
}
%3d 后三位对齐
int a=2,b=22,c=222;
printf("%3d\n",a);
printf("%3d\n",b);
printf("%3d\n",c);
练习:153 =1*1*1+5*5*5+3*3*3 100-999
#include <stdio.h>
int main
{
int main(int argc, char const *argv[])
{
int a, b, c;
for (int i = 100; i < 1000; i++)
{
a = i/ 100;
b = i/ 10 % 10;
c = i% 10;
if (i==a * a * a + b * b * b + c * c * c)
{
printf("%d\n",i);
}
}
return 0;
}
while
while(表达式)
{
}
int i=1;
while(i<4)
{
printf("qqqq\n");
i++;
}
执行顺序:首先定义循环变量并赋值,然后判断是否符合终止条件,如果符合就进入循环执行语句块及增值减值语句,然后继续判断,直到不成立退出循环
死循环:while(1)
do…while()
int a=8;
do
{
printf("qqqqq\n");
a++;
} while (a<5);
while:先判断再执行
do...while:先执行一次程序,再判断
循环控制语句
continue:结束本次循环,继续下一次
break:终止循环
return 0:结束程序
int i;
for(i=1;i<10;i++)
{
if(i%2==0)
{
//continue;
// break;
return 0;
}
printf("%d ",i);
}
printf("hello\n");
return 0;
循环输入一个5位数,判断它是不是回文数。当输入0时循环结束。
#include <stdio.h>
int main(int argc, char const *argv[])
{
int num;
scanf("%d", &num);
while (num)
{
int a, b, c, d, e;
a = num / 10000;
b = num / 1000 % 10;
c = num / 100 % 10;
d = num / 10 % 10;
e = num % 10;
if (a == e & b == d)
printf("%d是回文数\n", num);
else
printf("%d不是回文数\n", num);
break;
}
return 0;
}
数组
特点:
内存连续
数据类型相同
一维数组
格式:存储类型 数据类型 数组名[元素个数]
例:int a[5]={2,3,5,8,9};
a[0]------2
a[1]------3
a[2]------5
a[4]------9
访问时,索引从0开始
char a[5]={‘q’,‘w’,‘e’};
数组名
也是数组首地址
字节大小
int a[5];
4*5=20
printf(“%d”,sizeof(a));
初始化
完全初始化
int a[5]={2,3,5,8,9};
部分初始化
int a[5]={9}; 未初始化部分值为
int arr[66]={};
未初始化
int b[33]; 值为随机值
b[0]=9;
循环遍历
int a[5]={};
for(int j=0;j<5;j++)
scanf("%d",&a[j]);
for(int i=0;i<5;i++)
{
printf("%d\n",a[i]);
}
练习:求输入的十个数的平均值