# 一、关于数组 数组中的十进制数以ASCⅡ的形式存储、
## 二、关于识别和打印几个字符,就在%和d中间加数字,,,以及0的意思
### 三、打印字符型数字时,在%和f中加.和型对应的数字,就是打印小数点后的数字
#### 四、找最大值,
##### 五、一个小练习, 关于float 和double 的细节 还有打印上的 %f和%lf
###### 六、for循环
#include<stdio.h>
int main()
{
int i = 0;
int asc[12] = {73,32,99,97,110,32,100,111,32,105,116,33};
//char asc[] = { '73','32','99','97','110','32','100','111','32','105','116','33'};
int sz = sizeof(asc) / sizeof(asc[0]);
for(i=0;i<=sz;i++)
{
printf("%c ", asc);
}
return 0;
}
## 二、关于识别和打印几个字符,就在%和d中间加数字,,,以及0的意思
int main()
{
int y = 0;
int m = 0;
int d = 0;
scanf_s("%4d%2d%2d",&y,&m,&d);
printf("year=%4d\n",y);
printf("month=%02d\n",m);//%02d的意思是 %d打印整数,0不够的话就补零,2打印两位数
printf("date=%02d",d);
return 0;
}
打印字符型数字时,在%和f中加.和型对应的数字,就是打印小数点后的数字
int main()
{
int x = 0;
float c = 0;
float m = 0;
float y = 0;
scanf("%8d;%f,%f,%f",&x,&c,&m,&y);
printf("The each subject score of No. %d is %.2f,%.2f,%.2f.",x,c,m,y);
return 0;
}
小练习
关于printf打印字符所有的返回值的
int main()
{
int x = 0;
float c = 0;
float m = 0;
float y = 0;
scanf("%8d;%f,%f,%f",&x,&c,&m,&y);
printf("The each subject score of No. %d is %.2f,%.2f,%.2f.",x,c,m,y);
return 0;
}
转义字符小练习 \"和\\
//int main()
//{
// printf("printf(\"Hello world\\n\");\n");
// printf("cout << \"Hello worle !\" << endl;");
// return 0;
//}
找最大值,①可以把要输入的值存起来放到数组里
②假设我们输入的第一个值就是最大值,并且让这个(假)最大值与我们输入的值一一比较,
③如果后面输入的值大,就把这个值赋给(真)最大值,这样最后输出的值就是最大值
int main()
{
int arr[4] = {0};
int i = 0;
while(i<4)
{
scanf("%d", &arr[i]);
i++;
}
//找最大值
//假设第一个元素就是最大值
int max = arr[0];
i = 1;
while (i<4)
{
if (arr[i]>max)
{
max = arr[i];
}
else
{
;
}
i++;
}
printf("%d",max);
return 0;
}
另一个版本
int main()
{
int i = 1;
//假设输入的第一个值就是最大值
int max = 0;
int n = 0;
scanf("%d",&max);
//我输入的值都与上一个max比较,若大则代替之,若小则不改
while(i<4)
{
scanf("%d",&n);
if (n>max)
{
max = n;
}
i++;
}
printf("%d\n",max);
return 0;
}
一个小练习, 关于float 和double 的细节 还有打印上的 %f和%lf
int main()
{
double r = 0.0;//float =0.0f;f表明为浮点数 0.0默认为double类型
double v = 0.0;
scanf("%lf",&r);//若为float则此处为%f
v = 4.0 / 3 * 3.1415926 * r * r * r;
printf("%.3lf\n",v);
return 0;
}
小练习
int main()
{
int h = 0;
int w = 0;
//float bmi = 0;
scanf("%d %d",&h,&w);
float bmi = w /(h / 100.0)/( h / 100.0);
printf("%.2f",bmi);
return 0;
}
循环语句最重要的三元素
while 中有三个(初始化,判断,调整)很重要,影响循环的三要素
int main ()
{
int i = 0;//初始化
while (i<=10)//判断
{
printf("%d",i);
i++;//调整
}
}
for循环
for (表达式一初始化; 表达式二判断条件; 表达式三调整部分)
{
// 循环语句
}
for循环
for (表达式一初始化; 表达式二判断条件; 表达式三调整部分)
{
循环语句
}
int main()
{
int i = 0;
for (i = 0; i < 10; i++)
{
//printf("%d",i);
//printf("hh\n");
if (i == 5)
{
//continue;//0-10但是没有5 //continue是此次循环结束下面的代码五十,直接去i++处
//break;//打印01234 //break是直接跳出本次循环(并且只能跳出一次循环)
}
printf("%d", i);
}
}
for循环的变种
for循环的循环部分省意味着这部分判断会恒成立
int main()
{
for (;;)
{
printf("");
}
return 0;
int main()
{
int i = 1;
do
{
if(i==5)
break;
printf("%d ",i);
i++;
;//循环语句;
}
while (i <= 10);
}
计算n的阶乘 (用for语句的循环,把计算的值赋予一个值,然后循环起来,每次想加,就能把和总结起来)
int main()
{
int i = 1;
int n = 0;
int ret = 1;
scanf("%d",&n);
for ( i = 1; i <=n; i++)
{
ret = ret * i;
}
printf("%d", ret);
return 0;
}
int main()
{
int i = 0;
int a = 0;
int b = 1;
//每个的阶乘算出来放到r里
int c = 0;
for (i = 1; i <= 3; i++)
{
int b = 1;
for (a = 1; a <= i; a++)
{
b = b * a;
}//这个for循环是用来计算可控i的阶乘
c = b + c;这个for循环是把比如说把一的阶乘和二的阶乘相加,然后把三的阶乘和前两次的阶乘相加
}
printf("%d", c);
return 0;
}
精简版
int main()
{
int a = 1;
int b = 0;
int i = 0;
int c = 0;
for (i=1;i<=3;i++)
{
a = a * i;//这个式子计算了前几次的阶乘的结果(和里面那个for作用一样,但是不需要再计算了,因为已经记下结果),用三举例,i=1时,(n1*n2)*(n3)
b = a + b;
}
printf("%d",b);
return 0;
}