循环j*8505次.
北票ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
假设j开始等于100,
while外循环则循环100次,
每次执行一次内循环,
内循环每次执行8505次.
总共100*8505次.
你这个硬件处理器的频率可能运算8505次计算为1秒(或毫秒/微秒/纳秒),
然后delay函数实现循环n秒(或毫秒/微秒/纳秒).
应该不是秒,
1秒才运算8000多次的话那.....
#include
int
func(int
i);
//函数的原型定义
int
main(void)
{
int
n;
float
y;
scanf_s("%d",n);
//n没有被初始化,为任意值,此时是读取一个值给n,删去,直接给n初始化为5也可以
scanf_s是vs2013编译器专用的,请自行改成scanf
y
=
func(n);
/*函数的调用*/
printf("%d!=%f",
n,
y);
/*for语句多余*/
return
0;
}
int
func(int
i)
{
int
sum=0;
if
((i
==
0)
||
(i
==
1))
sum
=
1;
else
sum
=
func(i-1)
*
i;
//
i的值没有变化,一直都是读入的值,不会终止递归。
return
sum;
}
结果如图,有140个a ,for循环嵌套进行,每次先进行了完了一次内部循环,再进行外部循环,例如
for(i=0;i5;i++)for(j=0;j5;j++)每次执行一次第一个i的循环,就会执行五次j的循环。
还有,你的程序有一点错误:getch()是定义在库函数conio头文件中的,所以开头加上#includeconio.h就行了
不知道我的回答你是否满意。
main()
{
int result; /*运算的结果*/
printf("欢迎使用我们的计算器:\n");
while(1)
{
token = getchar(); /*载入第一个符号*/
result = low(); /*进行计算*/
if( token == '\n' ) /* 是否一行结束 */
printf( "The answer is : %d\n", result );
else
{
printf( "Unexpected char!");
exit(1); /* 出现了例外的字符 */
}
scanf("%d",result);
}
return 0;
}
C标准库中并没有循环函数的说法,只有三种循环语句:for语句和while语句,和do-while循环结构。
for循环的一般语法格式为:
for(表达式1;表达式2;表达式3)
{
循环体
}
其中,表示式可以省略,但是分号不可省略。
while语句的一般表达式为:
while(表达式)
{
循环体
}
do while 结构
do
{
循环体
}while( 表达式 )
实例:
1.for循环
#includestdio.h
int main(void)
{
int i,j,k;
j=k=2;
printf("ijk\n");
for(i=0;i2;i++){
printf("%d%d%d\n",i,j,k);
}
return0;
}
2.while循环
#includestdio.h
int main(void)
{
int i=3;
j=k=2;
while(i0){
printf("%d%d%d\n",i,j,k);
}
return0;
}
3.do while循环
#includestdio.h
int main(void)
{
int i=3;
j=k=2;
do{
printf("%d%d%d\n",i,j,k);
}while(i0)
return0;
}
冒泡排序的循环写法有问题,应将:for (j=0; j=i; j++)
改为:for (j=0; j2-i; j++)
因为在第一次循环中,不断判断相邻两数,最终将最小数交换到最后,即a[2]的位置
在第二次循环中,再将a[2]之前数中的最小数交换到a[1]的位置,此时数组已降序排列
因此对于循环i(从0开始),每次都将a[0]~a[2-i]中的最小数交换到a[2-i]的位置
又判断相邻数用到了j+1,所以需要满足j+1=2-i,即j=1-i,也可写为j2-i
因此j从0开始,到1-i 结束,改为for (j=0; j2-i; j++)即可
修改后的代码和运行结果如下:
输出正确,如果帮到你,望采纳~