冒泡法,无法实现1
#include <stdio.h>
void main()
{
int i,j,max,a;
printf("input ten numbers\n");
for(i=0;i < 10;i ++)
{
scanf("%d",&a);//动态赋值
}
printf("\n");
for(i=0;i < 9;i++)//外层循环10个数9次
{
for(j=0;j < 9-i;j++)//内层循环,每次沉一个数
{
if(a > a)
{
max = a;
a = a;
a = max;
}
}
//这个括号包括下面循环就可以看到9步过程
printf("the sorted numbers:\n");//输出
for(i=0;i < 10;i++)
{
printf("%d",a);
}
}
printf("\n");
}
本帖最后由 灰色的天空 于 2018-11-19 22:56 编辑
兄弟,你j不用的吗???另外你在打印的时候改变了i,所以只能打印一次
for(i=0;i < 9;i++)//外层循环10个数9次
{
for(j=0;j < 9-i;j++)//内层循环,每次沉一个数
{
if(a > a)
{
max = a;
a = a;
a = max;
}
}
内层循环,当j变化时,循环体不包含j,即内层循环始终在执行同一段一点都没有变化的代码,相当于内层循环只执行了一次。
此外,i在两个循环中使用,冲突了
#include <stdio.h>
void main()
{
int i, j, max, ii,a = {3,10,2,1,4,5,6,7,8,9};
printf("input ten numbers\n");
for (i = 0; i < 10; i++)
{
//scanf("%d", &a);//动态赋值
}
printf("\n");
for (i = 0; i < 9; i++)//外层循环10个数9次
{
for (j = 0; j < 9 - i; j++)//内层循环,每次沉一个数
{
if (a > a)
{
max = a;
a = a;
a = max;
}
}
//这个括号包括下面循环就可以看到9步过程
printf("the sorted numbers:\n");//输出
for (ii = 0; ii < 10; ii++)
{
printf("%d", a);
}
printf("\n");
}
}
#include <stdio.h>
void main()
{
int i,j,c,max,a; //给你加了一个c
printf("input ten numbers\n");
for(i=0;i < 10;i ++)
{
scanf("%d",&a);//动态赋值
}
printf("\n");
for(i=0;i < 9;i++)//外层循环10个数9次
{
for(j=0;j < 9-i;j++)//内层循环,每次沉一个数
{
if(a > a)
{
max = a;
a = a;
a = max;
}
}
//这个括号包括下面循环就可以看到9步过程
printf("the sorted numbers:\n");//输出
for( c=0;c < 10;c++)
{
printf("%d",a);
}
printf("\n");
}
}
页:
[1]