首页 > 其他分享 >C语言--循环语句

C语言--循环语句

时间:2023-04-16 18:32:48浏览次数:32  
标签:语句 -- ++ C语言 int while 循环 printf jc

for循环

循环语句中for语句最为常用,其格式为:

for(表达式1;表达式2;表达式3)
  循环语句;
  • 不可在for循环内修改循环变量,防止for循环失去控制。
  • 循环体表达式可省略但非必要不建议省略。

Q:1、请问下列循环要循环多少次?

#include

int main()
{
  int i = 0;
  int k = 0;
  for(i=0,k=0 ; k=0 ; i++,k++)
    k++;
  return 0;
}

while循环

其格式为:

while(表达式)
  循环语句;
例1
int main()
{
  int i=0;
  while(10 >= i)
  {
    printf("%d ",i);
    i++;
  }
  return 0;
}

do while循环

其格式为:

do
  循环语句;
while(表达式);
例1
int main()
{
  int i = 0;
  do
  {
    printf("%d ",i);
    i++;
  }
  while(10 >= i);
  return 0;
}
  • 特点:循环至少执行一次,使用场景有限,所以不经常使用

练习

1、计算n的阶乘。

#include <stdio.h>

int main() 

{
	int n,i;
  int jc = 1;
	printf("计算n!,请输入n:>");
	scanf("%d", &n);
	for (i=1; n >= i; i++){
		jc*= i;
	}
	printf("%d! = %d\n",n,jc);
	return 0;
}

2、计算1!+2!+3!+......+10!

#include <stdio.h>

int main() 

{
	int sum = 0;
	int i = 0;
  int jc = 1;
	for (i=1; 10 >= i; i++){
		jc*= i;
		sum += jc;
	}
	printf("sum= %d\n",sum);
	return 0;
}

3、在一个有序数组中查找具体的某个数字n。编写int binsearch(int x, int v[] ,int n);功能:在v[0]<=v[1]<=v[2]<=v[n-1]的数组查找x

#include <stdio.h>

int main() 
{
	int a[] = {1,3,4,5,6,7,8,9,10};//创建顺序数组序列
	int k = 6;//查找的值
	int mid =sizeof(a)/sizeof(a[0]);//元素个数
	int left = 0;//左下标
	int right = mid-1;//右下标
	//二分查找算法
	while (left <= right)
	{
		mid = (left + right) / 2;
		if (a[mid] < k){
			left = mid + 1;
		}
		else if (a[mid] > k){
			right = mid - 1;
		}
		else{
			printf("找到了!其下标为[%d]\n", mid);
			break;
		}
	}
	if (left > right)
		printf("没找到!\n");
	return 0;
}

总结/收获

1、二分查找算法

2、各种情况下循环语句的选用

标签:语句,--,++,C语言,int,while,循环,printf,jc
From: https://blog.51cto.com/u_16071993/6193505

相关文章

  • mapbox-gl实战教程:地图定位
    在地图开发中,定位是进行的比较多的操作,根据操作,定位到地图上一个位置,定位到地图上的一个区域,或是定位到一条路上等等。下边以实际的代码操作,讲一下mapbox-gl如何进行定位的操作。1、点数据定位:对于点数据的定位,mapbox-gl提供了两个实现方式,一个跳转(jumpTo)到位置,一个飞到(flyTo)指......
  • 汉源高科1分8口工业级485集线器8路16路中继器分线器485hub信号隔离器模块
    汉源高科1分8口工业级485集线器8路16路中继器分线器485hub信号隔离器模块......
  • scrcpy有价值的操作指令
    物理键盘模拟(HID)默认情况下,scrcpy使用安卓按键或文本注入,这在任何情况都可以使用,但仅限于ASCII字符。在Linux上,scrcpy可以模拟为Android上的物理USB键盘,以提供更好地输入体验(使用USBHIDoverAOAv2):禁用虚拟键盘,并适用于任何字符和输入法。不过,这种方法仅支持USB......
  • Lab syscall: System calls
    Systemcalltracing修改Makefileuser在user/user.h中添加系统调用声明在user/usys.pl中添加桩程序,生成user/usys.S即真实的系统调用桩程序kernel在kernel/syscall.h中添加系统调用号在kernel/proc.h中修改structproc,添加trace_mask变量,在kernel/sysproc.c......
  • Vue3组件通信直接参考案例
    https://juejin.cn/post/6999687348120190983#heading-7Vue3通信使用写法1.props用props传数据给子组件有两种方法,如下方法一,setup()方法写法//Parent.vue传送<child:msg1="msg1":msg2="msg2"></child><script>importchildfrom"./child.v......
  • 将坐标轴设定到原点位置
    (47条消息)matlabxaxislocation,x轴和y轴位置_云筱竹的博客-CSDN博客x轴位置set(gca,'XAxisLocation','bottom'); %将x轴的位置设置在底部(默认)。set(gca,'XAxisLocation','top');  %将x轴的位置设置在顶部。set(gca,'XAxisLocation','origin');%将......
  • .gitignore文件
    .gitlogsrebel.xmltarget/!.mvn/wrapper/maven-wrapper.jarlog.path_IS_UNDEFINED.DS_Storeoffline_user.md###STS###.apt_generated.classpath.factorypath.project.settings.springBeans###IntelliJIDEA###.idea*.iws*.iml*.ipr###NetBeans###nbproject/private/b......
  • Redis
    一、redis数据类型1.字符串类型2.哈希类型(适合存储对象)3.列表4.set(无序不重复元素)5.sortedset(有序不重复元素)二.redis常用命令......
  • Variational Quantum Linear Solver 的MindQuantum复现
    本教程复现论文VariationalQuantumLinearSolver中的图四。图四使用了文中提出的VQLS算法求解文中II.B.1中给出的问题Ising-inspiredQLSP,给出了参数\(\kappa\)与线路运行次数的关系。VQLS算法用于求解线性方程的解,即对方程\(Ax=b\),已知\(A\)和\(b\),得出方程的解\(x\)。如上图......
  • # 密码引擎-4-国䀄算法交叉测试
    任务详情2人一组,创建一个文件,文件名为小组成员学号,内容为小组成员学号和姓名在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码和运行结果截图在Ubuntu中基于OpenSSL产生一对公私钥对(SM2算法)在Ubuntu中使用OpenSSL用SM3算法计算上述文件的Hash值,然后用O......