private int[] array=new int[100];
public void initArray(){
//自动生成数组
for(int i=0;i<100;i++){
array[i]=i;
}
}
public void soft(){
//冒泡排序,由大到小
int tmp=array[0];
for(int i=0;i<arraylength;i++){
for(int j=i+1;j<array;j++){
if(array[i]<array[j]){
tmp=array[i];
array[i]=array[j];
array[j]=tmp;
}
}
}
public void printArray(){
//输出array的数据
for(int i=0;i<arraylength;i++){
Systemoutprint(i+" ");
}
Systemoutprintln();
}
public static void main(String args[]){
Demo demo=new Demo();
demoinitArray();
demoprintArray();
demosoft();
demoprintArray();
}
}
数组的条件不对for(b=0;b<6;b++) 这样只能输出6个数字应为for(b=0;b<=6;b++)。
不理解你第二个for循环的目的不就是倒序输出没有让交换数据吧应该这样写吧
for(b=6;b>=0;b--){printf("a[%d]=%d\n",b,a[b]);}
不知道c语言的可不可以这类题的解题思路是以中间的元素为中心,将其两侧对称的元素的值互换。
举例:五个数的数组逆序输出
#include<stdioh>
#define N 5
void main()
{
int a[N],i,temp;
printf("enter array a:\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("array a:\n");
for(i=0;i<N;i++)
printf("%4d",a[i]);
for(i=0;i<N/2;i++)
{
temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf("\nNew array a:\n");
for(i=0;i<N;i++)
printf("%4d",a[i]);
printf("\n");
}
希望能帮到你!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)