关于C++中冒泡排列的问题

来源:百度知道 编辑:UC知道 时间:2024/06/22 17:40:19
#include<stdio.h>
#define Max 100

typedef struct
{
int key;
char data;
}LineList;

void BubbleSort(LineList R[],int n)
{
int i,j,exchange;
LineList temp;
for(i=0;i<n-1;i++)
{
exchange = 0;
for(j=n-1;j>i;j--)
if(R[j].key<R[j-1].key)
{
temp=R[j];
R[j]=R[j-1];
R[j-1]=temp;

exchange=1;
}
if(exchange==0)
return;
}
}

int main()
{
LineList R[Max];
char a[]={69, 10, 30, 2, 16, 8, 31, 22};
int i,n=8;
for(i=0;i<n;i++)
R[i].key=a[i];
printf("first:\n");
for(i=0;i<n;i++)
printf("%-5d",R[i].key);
printf("\n");
printf("==================================================

楼上不行啊,变量i已经有了,用新变量k吧:
#include<stdio.h>
#define Max 100

typedef struct
{
int key;
char data;
}LineList;

void BubbleSort(LineList R[],int n)
{
int i,j,k,exchange;
LineList temp;
for(i=0;i<n-1;i++)
{
exchange = 0;
for(j=n-1;j>i;j--)
if(R[j].key<R[j-1].key)
{
temp=R[j];
R[j]=R[j-1];
R[j-1]=temp;

for(k=0;k<n;k++)
printf("%-5d",R[k].key);
printf("\n");
exchange=1;
}
if(exchange==0)
return;
}
}

int main()
{
LineList R[Max];
char a[]={69, 10, 30, 2, 16, 8, 31, 22};
int i,n=8;
for(i=0;i<n;i++)
R[i].key=a[i];
printf("first:\n");
for(i=0;i<n;i++)
printf("%-5d",R[i].key);
printf("\n");
printf("===============================================