haihongyuan.com
海量文库 文档专家
全站搜索:
您现在的位置:首页 > 小学教育 > 小学其它学科小学其它学科

实验四顺序表排序

发布时间:2014-01-05 15:40:33  

#include <stdio.h>

#include <stdlib.h>

#define LIST_SIZE 20

typedef struct{

int Array[LIST_SIZE+1];

int Length,a,b,c;

int zero[LIST_SIZE+1];

int one[LIST_SIZE+1];

int two[LIST_SIZE+1];

}List;

List *SqLset(){ //顺序表元素函数

List *L; //定义一个List型指针变量L int i;

L=(List *)malloc(sizeof(List)); //为顺序表申请空间 L->Length=-1; //初始化顺序表长度

L->a=0; //初始化存放能被3整除的顺序表的长度 L->b=0; //初始化存放除以3余1的顺序表的长度 L->c=0; //初始化存放除以3余2的顺序表的长度

printf("请输入顺序表的长度i(i<LIST_SIZE):"); scanf("%d",&i);

printf("请输入%d个元素的顺序表:",i);

for(L->Length=0;L->Length<i;L->Length++){

scanf("%d",&L->Array[i]);

} //顺序表的输入

L->Length=i;

return L;

}

List *Dispart(List *L){

int i;

for(i=0;i<L->Length;i++){ //循环条件,当未超出顺序表长度时 if(L->Array[i]%3==0){

L->zero[L->a]=L->Array[i]; //能被3整除

L->a++;

} //把能被3整除的数放到顺序表中

else if(L->Array[i]%3==1){ //除以3余1

L->one[L->b]=L->Array[i];

L->b++;

} //把除以3余1的数放到顺序表中

else { //除以3余2

L->two[L->c]=L->Array[i];

L->c++;

} //把除以3余2的数放到顺序表中

}

for(i=0;i<L->a;i++){ //顺序表分块输出

printf("%d",L->zero[i]);

}

printf("\t\t");

for(i=0;i<L->b;i++){

printf("%d",L->one[i]);

}

printf("\t\t");

for(i=0;i<L->c;i++){

printf("%d",L->two[i]);

}

printf("\n");

return L;

}

void main(){

List *A;

A=SqLset(); //调用输入函数

A=Dispart(A); //对元素分块输出

}

网站首页网站地图 站长统计
All rights reserved Powered by 海文库
copyright ©right 2010-2011。
文档资料库内容来自网络,如有侵犯请联系客服。zhit326@126.com