一、今日学习计划
1.完成之前第七章的内容
2.学习第九章(函数)
二、学习收获
1.循环辅助手段
a.continute语句
continute语句可以根据循环体内进行的判断结果忽略部分循环
如果continute语句处于嵌套结构中,它仅仅影响包含它的最里面的结构。
它导致程序控制跳过循环中的剩余语句。对于while或for循环,开始下一个循环周期。
b.break语句
break命令可以与三种循环中的任何一种以及switch语句一起使用。
他导致程序控制跳过包含它的循环或switch语句剩余部分,继续执行紧跟在循环或switch后的下一条命令。
在这里插入代码片#include<stdio.h>
int main(void)
{
float length,width;
printf("请输入矩形的长:\n");
while(scanf("%f",&length)==1)
{
printf("length=%0.2f:\n",length);
printf("请输入矩形的宽:\n");
if(scanf("%f",&width)!=1)
break;
printf("width=%0.2f:\n",width);
printf("矩形的面积为=%0.2f\n",length*width);
printf("请输入矩形的长度:\n");
}
return 0;
}
2.多重选择:switch
格式:
switch(expression)
{case 1: statement1
case 2:statement2
default:statement3
}
程序控制按照expression的值跳转到相应的case标签处。然后程序流程继续通过所有剩余的语句,直到再次由break语句重定向。expression和case标签必须都是整型值。如果没有与表达式相匹配的case标签,那么控制定位到标签为default的语句,如果它存在的话。否则,控制传递给紧跟着switch语句的下一条语句
3.无参数的函数。
在这里插入代码片#include<stdio.h>
#define SIZE 50
#define P "hello"
#define W "heihei"
void hei();
int main(void)
{
hei();
printf("%s\n",P);
printf("%s\n",W);
hei();
return 0;
}
void hei()
{
int count;
for(count=1;count<=SIZE;count++)
putchar('*');
putchar('\n');
}
4…带有参数的函数。
#include<stdio.h>
#include<string.h>
#define NAME "GIGATHINK,INC."
#define ADDRESS "101 Megabuck Plaza"
#define PLACE "Megapolis,CA 94904"
#define WIDTH 40
#define SPACE ' '
void show_n_char(char ch,int num);
int main()
{
int spaces;
show_n_char('*',WIDTH);
putchar('\n');
show_n_char(SPACE,12);
printf("%s\n",NAME);
spaces=(WIDTH-strlen(ADDRESS))/2;
show_n_char(SPACE,spaces);
printf("%s\n",ADDRESS);
show_n_char(SPACE,(WIDTH-strlen(PLACE))/2);
printf("%s\n",PLACE);
show_n_char('*',WIDTH);
putchar('\n');
}
void show_n_char(char ch,int num)
{
int count;
for(count=1;count<=num;count++)
putchar(ch);
}
5.使用return从函数中返回一个值
#include<stdio.h>
int imin(int,int);
int main(void)
{
int evil1,evil2;
printf("请输入两个整数,输入q结束:\n");
while((scanf("%d %d",&evil1,&evil2))==2)
{
printf("在这两个数中最小的是%d",imin(evil1,evil2));
printf("请再次输入两个整数:\n");
}
}
int imin(int n,int m)
{
int min;
if(n<m)
min=n;
else
min=m;
return min;
}
6.递归
c允许一个函数调用其本身,这种调用过程称作递归,递归一般可以代替循环语句。
#include<stdio.h>
void up_and_down(int);
int main(void)
{up_and_down(1);
return 0;
}
void up_and_down(int n)
{
printf("Level %d :n location %p\n",n,&n);
if(n<4)
up_and_down(n+1);
printf("LEVEL %d :n location %p\n",n,&n);
}