?? 7.1.c
字號:
#include<stdio.h>
#include<string.h>
#define MAXSIZE 20
struct student
{char name[20];
int score;
};
struct SqList
{struct student r[MAXSIZE+1];
int length;
};
struct SqList L;
void InitSqList()
{int i;
printf("input the number of data:\n");
scanf("%d",&L.length);
printf("input the data:\n");
for(i=1;i<=L.length;i++)
{scanf("%s",L.r[i].name);
scanf("%d",&L.r[i].score);
}
}
void ShellInsert(int dk)
{int i,j;
for(i=dk+1;i<=L.length;i++)
if(L.r[i].score>L.r[i-dk].score)
{L.r[0].score=L.r[i].score;
strcpy(L.r[0].name,L.r[i].name);
for(j=i-dk;j>0&&L.r[0].score>L.r[j].score;j-=dk)
{L.r[j+dk].score=L.r[j].score;
strcpy(L.r[j+dk].name,L.r[j].name);
}
L.r[j+dk].score=L.r[0].score;
strcpy(L.r[j+dk].name,L.r[0].name);
}
}
void ShellSort(int dlta[5],int t)
{int k;
for(k=0;k<t;k++)
ShellInsert(dlta[k]);
}
void PrintSqList()
{int n=1,i;
printf("\n");
for(i=1;i<=L.length;i++)
{printf("%d %s %d\n",n,L.r[i].name,L.r[i].score);
if(L.r[i].score>L.r[i+1].score)
n++;
}
}
void main(void)
{int dlta[5]={9,5,3,2,1};
InitSqList();
ShellSort(dlta,5);
PrintSqList();
getchar();
getchar();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -