黑马程序员--C语言之流程控制

本文详细介绍了C语言中的流程控制结构,包括顺序结构、选择结构(if语句、switch语句)和循环结构(while循环、do-while循环、for循环),并通过实例展示了每种结构的应用场景。此外,还探讨了函数的使用方法及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

C语言的学习过程大致上包括基本语法、基本运算、流程控制等。本篇博客先总结下C语言的流程控制和函数。

使用工具:Xcode5.1.1


流程控制

流程控制有三种结构:

1、顺序结构:按照普通编程顺序运行的结构。

2、选择结构:

1>  if语句。结构如:

/*
计算个人所得税
*/
#include <stdio.h>
int main()
{
double salary = 0 ;//工资
double tax = 0 ;//税
printf("Please write out your salary:");
scanf("%f",&salary);
//用if-else来判断工资范围
if(salary < 1500 )
{
tax = 0 ;
}else if(salary < 4500)
{
tax = (salary-1455) * 0.1 ;
}else if(salary < 9000)
{
tax = (salary - 4155 ) * 0.2;
}else if(salary < 35000)
{
tax = (salary - 7755 ) * 0.25;
}else
{
tax = (salary - 27255) * 0.3;
}
printf("The tax you shold pay :%f",tax);
return 0;
}


2>  switch语句。结构如:

/*
选择出行方式
*/
#include <stdio.h>
int main()
{
int choose=0;
printf("Please select a tool to travel (select number):\n 1:bus \n 2:subway \n 3:plane \n");
scanf("%d",&choose);
switch(choose)
{
case 1:
printf("You will travel by bus");
break;
case 2:
printf("You will travel by subway");
break;
case 3:
printf("You will travel by plane");
break;
default:
printf("Please select number between 1 and 3 ");
break;
}
return 0;
}


3、循环结构:

1>while循环。结构如:

/*
买钢笔
*/
#include <stdio.h>
int main()
{
int count = 0;
int num = 0 ;
printf("How may pens would you like?\n");
scanf("%d",&num);

while(count < num )
{
count++;
print("%d\n",count);
}
return 0;
}

2>do - while循环。结构如:

/*
买钢笔
*/
#include <stdio.h>
int main()
{
int count = 0;
int num = 0 ;
printf("How may pens would you like?\n");
scanf("%d",&num);

do
{
count++;
print("%d\n",count);
}while(count <= num)
return 0;
}

3>for循环。结构如:

/*
买钢笔......
*/
#include <stdio.h>
int main()
{
int num = 0 ;
printf("How may pens would you like?\n");
scanf("%d",&num);
for(int count=1;count<=num;count++)
{
print("%d\n",count);
}
return 0;
}


注意事项:

1、如果在语句中定义变量,则应注意变量作用域。

例如:在上面买钢笔的例子,while 和 do- while中count 可以在return前面使用;在for循环中count作用域仅为for循环内部。

2、if语句有多个else if,应考虑代码的简练。

例如:在个人所得税例子中第一个条件为if(salary < 1500)接下来第二个条件是if(salary < 4500),而不是 if(salary > 1500 && salary < 4500)。

3、switch语句不能使用于范围大的情况,if语句完全可以代替switch语句。

例如:switch语句在个人所得税例子中不能使用。

4、while循环如果不满足条件则不会允许循环体;do-while循环不管是否满足条件至少会运行一次循环体。

例如:买钢笔的例子中,同样的操作要求,while循环的条件为while(count < num);而do- while 循环的条件为 do - while( count <= num) 。因为do - while无论如何都要执行一次循环体,所以条件也不同了。

5、switch语句中case、break不一定会成对出现。

例如:

/*
打印从a开始到输入的字母
*/
#include <stdio.h>
int main()
{
char insert;
printf("please insert a char:");
scanf("%c",&insert);

switch(insert)
{
case 'a':
printf("a");
case 'b':
printf("b");
case 'c':
printf("c");
......//太多了,此处略去
default:
printf("z");
}
return 0;
}


6、循环语句中有些时候会用到break、continue:break可直接退出循环;continue是跳过本次循环,进行下次循环。

例如:

/*
打印1~100内除13倍数的数
*/
#include <stdio.h>
int main()
{
for(int num=1;num <= 100;num++)
{
if(num%13==0)
continue;
printf("%d\ \ \ ",num);
}
return 0;
}


7、return、break、continue、goto这些属于跳转结构。goto用法:

for (j=0;j<n;j++){
choose1:;
for (i=0;i<m;i++){
...
if (..) goto choose1;
if (..) goto choose2;
if (..) goto choose3;
if (..) goto choose4;
choose2:;
...
}
...
choose3:;
}
choose4:

使用时注意,goto不能跳出自己的函数块!
 

函数

C程序是由一组变量或是函数的外部对象组成的。

函数使用注意:

1、函数一般是按照编程顺序运行,如果想随意调用,则可以先声明方法。

2、用到形参的函数,返回值必须和形参一致。

3、C语言中可以用#include 来包含其他函数。

4、例:

#include <stdio.h>
int avg(int ,int );
int main()
{
	int a = avg(15,99);
	printf("avg is %d",a);
	return 0;
}
int avg(int a ,int b)
{
	return (a+b)/2;
}

声明变量时,可以不写具体的形参

内容概要:本文针对国内加密货币市场预测研究较少的现状,采用BP神经网络构建了CCi30指数预测模型。研究选取2018年3月1日至2019年3月26日共391天的数据作为样本,通过“试凑法”确定最优隐结点数目,建立三层BP神经网络模型对CCi30指数收盘价进行预测。论文详细介绍了数据预处理、模型构建、训练及评估过程,包括数据归一化、特征工程、模型架构设计(如输入层、隐藏层、输出层)、模型编译与训练、模型评估(如RMSE、MAE计算)以及结果可视化。研究表明,该模型在短期内能较准确地预测指数变化趋势。此外,文章还讨论了隐层节点数的优化方法及其对预测性能的影响,并提出了若干改进建议,如引入更多技术指标、优化模型架构、尝试其他时序模型等。 适合人群:对加密货币市场预测感兴趣的研究人员、投资者及具备一定编程基础的数据分析师。 使用场景及目标:①为加密货币市场投资者提供一种新的预测工具和方法;②帮助研究人员理解BP神经网络在时间序列预测中的应用;③为后续研究提供改进方向,如数据增强、模型优化、特征工程等。 其他说明:尽管该模型在短期内表现出良好的预测性能,但仍存在一定局限性,如样本量较小、未考虑外部因素影响等。因此,在实际应用中需谨慎对待模型预测结果,并结合其他分析工具共同决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值