扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
冒泡排序的循环写法有问题,应将:for (j=0; j=i; j++)
成都创新互联基于成都重庆香港及美国等地区分布式IDC机房数据中心构建的电信大带宽,联通大带宽,移动大带宽,多线BGP大带宽租用,是为众多客户提供专业西部信息服务器租用报价,主机托管价格性价比高,为金融证券行业服务器托管,ai人工智能服务器托管提供bgp线路100M独享,G口带宽及机柜租用的专业成都idc公司。
改为: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++)即可
修改后的代码和运行结果如下:
输出正确,如果帮到你,望采纳~
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;
}
没有收到返回值的原因
#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);
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流