十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1.for语句的一般格式
10年积累的网站设计、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有安达免费网站建设让你可以放心的选择与我们合作。
for([变量赋初值];[循环继续条件];[循环变量增值])
{
循环体语句组;}
2.for语句的执行过程
执行过程如图5-1所示。
(1)求解“变量赋初值”表达式。
(2)求解“循环继续条件”表达式。如果其值非0,执行(3);否则,转至(4)。
(3)执行循环体语句组,并求解“循环变量增值”表达式,然后转向(2)。
(4)执行for语句的下一条语句。
3.说明
(1)“变量赋初值”、“循环继续条件”和“循环变量增值”部分均可缺省,甚至全部缺省,但其间的分号不能省略。
(2)当循环体语句组仅由一条语句构成时,可以不使用复合语句形式,如上例所示。
(3)“循环变量赋初值”表达式,既可以是给循环变量赋初值的赋值表达式,也可以是与此无关的其它表达式(如逗号表达式)。
例如,for(sum=0;i=100;i++)
sum
+=
i;
for(sum=0,i=1;i=100;i++)
sum
+=
i;
(4)“循环继续条件”部分是一个逻辑量,除一般的关系(或逻辑)表达式外,也允许是数值(或字符)表达式。
冒泡排序的循环写法有问题,应将: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++)即可
修改后的代码和运行结果如下:
输出正确,如果帮到你,望采纳~
没有收到返回值的原因
#includestdio.h
int
fun
(int
lim,int
aa[10])
{
int
i,j,k=0;
for(i=2;i=lim;i++)
{
for(j=2;ji;j++)
if(i%j==0)
break;
if(j=i)
aa[k++]=i;
}
return
k;
}
main
(
)
{
int
aa[10];
int
lim=10,k=0;
k=fun(lim,aa);//就是这里,要把函数返回值赋值给k,才行,主函数的k和fun函数的k是完全两个东西
printf("%d\n",k);
}