循环语句c语言循环*,C语言学习笔记三-----选择与循环语句

本文介绍了C语言中的随机数函数rand()的使用,包括如何生成指定范围内的随机数。此外,还讲解了C程序设计的七块理解法,包括注释、预处理、函数定义等部分。讨论了条件语句、循环结构的注意事项,如if语句与浮点数比较,switch-case语句的使用,以及for循环的不同形式。并提供了多项式累计法、最大公约数计算、简单计算器和随机数学题生成等实例代码。
摘要由CSDN通过智能技术生成

再介绍新的主题之前,我们先介绍一些额外的话题

随机函数(rand())的使用方法:

原理:rand()函数是按指定顺序来产生整数。(伪随机数)

1.需加头文件#include

2.可用 int i=rand()

3.if想生成指定范围内的随机数需要%:

0~10的随机数      rand()%11

0~100            rand()%101

C中/*   */会被编译器替换为什么?一个空格?还是不留痕迹?

int/*test*/a;//编译成功

in/*test*/t a;//error

所以在C99中/*test*/被编译器替换为一个空格

一.程序设计七块理解法:

1.注释部分

2.预处理块,全局变量说明,函数声明.....

3.函数定义部分

4.变量说明部分

5.数据输入部分

6.执行部分

7.信息输出部分

关于选择与循环的语法省略不讲

注:

1.ifx为float的实型变量,则与0比较的标准语句如下:

if(fabs(x)<=1e-6)    //领域     记得加头文件#include

2.写条件嵌套语句时注意条件的不重合性

3.switch_多分支选择语句:

default(缺省情况)放在所有的case之后,可不加break;如果default后面还有case语句,如果不加break,会继续执行case语句,此时必须加break(不推荐这种用法)

switch()中的()表达式结果必须为整数,也可为字符,case的判断值要求是整型变量。

4.for(;;)<=====>for(;1;)

5.通过九九乘法表介绍多重循环:

核心代码:

for(i=1;i<=9;i++)

{for(k=1;k<=i;k++)

{

j=i*k;

printf("%d*%d=%d",i,k,j);

}

printf("\n");

}

6.   some tips for loops:

~if有固定的次数=>for

~if必须执行一次=> do-while

~其他用while

7.典型例题:

a.多项式累计法:

计算sinx的泰勒展开,并使最后一项的绝对值小于1e-6为止;

#include

intmain()

{inti;float sum,x,a,b;//a为分子,b为分母;

char s=1;

sum=0;

scanf("%f",&x);

a=x;

b=1;for(i=1;a/b>=1e-6;i++)

{

sum+=s*a/b;

a*=x*x;

b=b*2*i*(2*i+1);

s*=-1;

}

printf("sum=%f",sum);return 0;

}

b.试数法:

用于求水仙花数,最大公约数,最小公倍数,百鸡百钱问题

只写出一个求最大公约数的核心代码:

for(i=a0;i++)

{if(a%i==0&&b%i==0)

{

printf("the max = %d",i);break;

}

}

c.简单的人机交互

1.简单的计算器,如输入3+5=8;输入错误就退出(不是加减乘除)

#include#include

intmain()

{floata,b;charop;while(1)

{

scanf("%f%c%f",&a,&op,&b);if(op!='+'&&op!='-'&&op!='*'&&op!='/')

{

printf("error");break;

}switch(op)

{case '+':

printf("%f+%f=%f",a,b,a+b);break;case '-':

printf("%f-%f=%f",a,b,a-b);break;case '*':

printf("%f*%f=%f",a,b,a*b);break;case '/':if(fabs(b)>=1e-6)

{

printf("%f/%f=%f",a,b,a/b);

}elseprintf("the number of b is wrong!\n");break;

}

}return 0;

}

2.编程序为小学生出一套最简单的整数(<=100)加减乘的运算的试题,一共十题,每题十分,且随机产生,产生后立即给出学生答案(计算机判断错误),做完立即给出分数。

#include#include#include#include

intmain()

{inta,b,i,s;charop;int score=0;for(i=0;i<10;i++)

{

a=rand()%101;

b=rand()%101;

op=rand()%3;if(op==0)//0代表加号

{

printf("%d+%d=?\n",a,b);

scanf("%d",&s);if(s==a+b)

{

printf("ture\n");

score+=10;

}elseprintf("false\n");

}else if(op==1)

{

printf("%d-%d=?\n",a,b);

scanf("%d",&s);if(s==a-b)

{

printf("ture\n");

score+=10;

}elseprintf("false\n");

}else{

printf("%d*%d=?\n",a,b);

scanf("%d",&s);if(s==a*b)

{

printf("ture\n");

score+=10;

}elseprintf("false\n");

}

}

printf("score=%d\n",score);return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值