久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1868|回復: 0
收起左側

順序表 的源代碼

[復制鏈接]
ID:126856 發表于 2016-6-15 15:29 | 顯示全部樓層 |閱讀模式
#include <stdlib.h>
#include <windows.h>

#define LEN 100

typedef struct
{
        float a[LEN],b[LEN],c[LEN];
        int length_A,length_B,length_C;
}Seqlist;

void menu(Seqlist &L);

void creat(Seqlist &L)//創建
{
        int n,i,j;
        do
        {
                system("cls");
                puts("1:A 組創建\n\n2:B 組創建\n\n0:返回菜單\n\n");
                printf("請選擇操作:");
                scanf("%d",&n);
                system("cls");
                if(n==1)
                {
                        printf("請輸入要創建元素的個數:");
                        scanf("%d",&j);
                        L.length_A=0;
                        for(i=0;i<j;i++)
                        {
                                printf("請輸入第%d個元素:",i+1);
                                if(scanf("%f",&L.a[i])!=0)
                                        L.length_A++;
                        }
                }
                else if(n==2)
                {
                        printf("請輸入要創建元素的個數:");
                        scanf("%d",&j);
                        L.length_B=0;
                        for(i=0;i<j;i++)
                        {
                                printf("請輸入第%d個元素:",i+1);
                                scanf("%f",&L.b[i]);
                                L.length_B++;
                        }
                }
                else if(n==0)
                {
                        Sleep(1000);
                        menu(L);
                }
                else
                {
                        puts("選擇錯誤,請重新選擇");
                        Sleep(1000);
                }
        }while(1);
}

void showA(Seqlist &L)//打印A
{
        int i;
                printf("A組元素為:");
                for(i=0;i<L.length_A;i++)
                        printf("%.1f\t",L.a[i]);
                putchar('\n');
}

void showB(Seqlist &L)//打印B
{
        int i;
                printf("B組元素為:");
                for(i=0;i<L.length_B;i++)
                        printf("%.1f\t",L.b[i]);
                putchar('\n');
}

void showC(Seqlist &L)//打印C
{
        int i;
                printf("C組元素為:");
                for(i=0;i<L.length_C;i++)
                        printf("%.1f\t",L.c[i]);
                putchar('\n');
}

void show(Seqlist &L)//打印
{
        int n;
        do
        {
                system("cls");
                showA(L);
                showB(L);
                showC(L);
                printf("按0返回菜單\n");
                scanf("%d",&n);
                if(n==0)
                {
                        Sleep(1000);
                        system("cls");
                        menu(L);
                }
        }while(n!=0);
}

void insert(Seqlist &L)//插入
{
        int n,i,j;
        float m;
        do
        {
                system("cls");
               
                //先打印一次數據
                //***************************
                showA(L);
                showB(L);
                //***************************
                 
                putchar('\n');
                puts("1:A 組插入\n\n2:B 組插入\n\n0:返回菜單\n\n");
                printf("請選擇操作:");
                scanf("%d",&n);
                if(n==1)
                {
                        if(L.length_A==0)
                        {
                                printf("沒有元素,不能插入,請先創建元素!");
                                Sleep(3000);
                                creat(L);
                        }
                        printf("請輸入要插入的數:");
                        scanf("%f",&m);
                        do
                        {
                                printf("請選擇插入在第幾位:");
                                scanf("%d",&j);
                                if(j<1||j>L.length_A+1)
                                        printf("位置錯誤,請重新選擇位置:");
                                else
                                {
                                        for(i=L.length_A;i>=j;i--)
                                                L.a[i]=L.a[i-1];
                                        L.a[j-1]=m;
                                        L.length_A++;
                                        break;
                                }
                        }while(1);
                }
                else if(n==2)
                {
                        if(L.length_B==0)
                        {
                                printf("沒有元素,不能插入,請先創建元素!");
                                Sleep(3000);
                                creat(L);
                        }
                        printf("請輸入要插入的數:");
                        scanf("%f",&m);
                        do
                        {
                                printf("請選擇插入在第幾位:");
                                scanf("%d",&j);
                                if(j<1||j>L.length_B+1)
                                        printf("位置錯誤,請重新選擇位置");
                                else
                                {
                                        for(i=L.length_B;i>=j;i--)
                                                L.b[i]=L.b[i-1];
                                        L.b[j-1]=m;
                                        L.length_B++;
                                        break;
                                }
                        }while(1);
                }
                else if(n==0)
                {
                        Sleep(1000);
                        system("cls");
                        menu(L);
                }
                else
                {
                        puts("選擇錯誤,請重新選擇");
                        Sleep(1000);
                }
        }while(1);
}

void del(Seqlist &L)//刪除
{
        int n,i,j;
        do
        {
                system("cls");
               
                //先打印一次數據
                //***************************
                showA(L);
                showB(L);
                showC(L);
                //***************************
                 
                putchar('\n');
                puts("1:A 組刪除\n\n2:B 組刪除\n\n0:返回菜單\n\n");
                printf("請選擇操作:");
                scanf("%d",&n);
                if(n==1)
                {
                        do
                        {
                                if(L.length_A==0)
                                {
                                        printf("沒有元素,不能刪除,請先創建元素!");
                                        Sleep(3000);
                                        creat(L);
                                }
                                printf("刪除第幾個位置的數");
                                scanf("%d",&j);
                                if(j<1||j>L.length_A+1)
                                        printf("位置錯誤,請重新選擇位置");
                                else
                                {
                                        for(i=j;i<L.length_A;i++)
                                                L.a[i-1]=L.a[i];
                                        L.length_A--;
                                        break;
                                }
                        }while(1);
                }
                else if(n==2)
                {
                        do
                        {
                                if(L.length_A==0)
                                {
                                        printf("沒有元素,不能插入,請先創建元素!");
                                        Sleep(3000);
                                        creat(L);
                                }
                                printf("刪除第幾個位置的數");
                                scanf("%d",&j);
                                if(j<1||j>L.length_B+1)
                                        printf("位置錯誤,請重新選擇位置");
                                else
                                {
                                        for(i=j;i<L.length_B;i++)
                                                L.b[i-1]=L.b[i];
                                        L.length_B--;
                                        break;
                                }
                        }while(1);
                }
                else if(n==0)
                {
                        Sleep(1000);
                        system("cls");
                        menu(L);
                }
                else
                {
                        puts("選擇錯誤,請重新選擇");
                        Sleep(1000);
                }
        }while(1);
}

void gather(Seqlist &L)//合并
{
        system("cls");
        int i,j,flag=0;
        L.length_C=0;
        if(L.length_A==0&&L.length_B==0)
        {
                printf("沒有元素,合并失敗!\n");
                Sleep(1500);
                printf("請先創建元素");
                Sleep(3000);
                creat(L);
        }
        for(i=0;i<L.length_A;i++)
        {
                if(i==0)
                {
                        L.c[i]=L.a[i];
                        L.length_C++;
                }
                else
                {
                        for(j=0;j<L.length_C;j++)
                        {
                                if(L.c[j]!=L.a[i])
                                        flag=1;
                                else
                                {
                                        flag=0;
                                        break;
                                }
                        }
                        if(flag==1)
                        {
                                L.c[L.length_C]=L.a[i];
                                L.length_C++;
                        }
                }
        }
       
        for(i=0;i<L.length_B;i++)
        {
                for(j=0;j<L.length_C;j++)
                {
                        if(L.c[j]!=L.b[i])
                                flag=1;
                        else
                        {
                                flag=0;
                                break;
                        }
                }
                if(flag==1)
                {
                        L.c[L.length_C]=L.b[i];
                        L.length_C++;
                }
        }
        printf("合并數據成功\n");
        Sleep(1000);
        printf("即將返回菜單...\n");
        Sleep(1500);
        system("cls");
}

void arrangeA(Seqlist &L)//排序A
{
        int i,j;
        float temp;
        if(L.length_A==0)
        {
                printf("沒有元素,不能排序,請先創建元素!");
                Sleep(3000);
                creat(L);
        }
        for(i=0;i<L.length_A;i++)
        {
                for(j=1;j<L.length_A-i;j++)
                {
                        if(L.a[j-1]>L.a[j])
                        {
                                temp=L.a[j-1];
                                L.a[j-1]=L.a[j];
                                L.a[j]=temp;
                        }
                }
        }
}

void arrangeB(Seqlist &L)//排序B
{
        int i,j;
        float temp;
        if(L.length_B==0)
        {
                printf("沒有元素,不能排序,請先創建元素!");
                Sleep(3000);
                creat(L);
        }
        for(i=0;i<L.length_B;i++)
        {
                for(j=1;j<L.length_B-i;j++)
                {
                        if(L.b[j-1]>L.b[j])
                        {
                                temp=L.b[j-1];
                                L.b[j-1]=L.b[j];
                                L.b[j]=temp;
                        }
                }
        }
}

void arrangeC(Seqlist &L)//排序C
{
        int i,j;
        float temp;
        if(L.length_C==0)
        {
                printf("沒有元素,不能排序,請先創建元素!");
                Sleep(3000);
                creat(L);
        }
        for(i=0;i<L.length_C;i++)
        {
                for(j=1;j<L.length_C-i;j++)
                {
                        if(L.c[j-1]>L.c[j])
                        {
                                temp=L.c[j-1];
                                L.c[j-1]=L.c[j];
                                L.c[j]=temp;
                        }
                }
        }
}

void arrange(Seqlist &L)//排序
{
        int n;
        do
        {
                system("cls");
                puts("1:A 組排序\t2:B 組排序\n\n3:C 組排序\t0:返回菜單\n\n");
                printf("請選擇操作:");
                scanf("%d",&n);
                if(n==1)
                {
                        arrangeA(L);
                        printf("排序成功");
                        Sleep(1000);
                }
                else if(n==2)
                {
                        arrangeB(L);
                        printf("排序成功");
                        Sleep(1000);
                }
                else if(n==3)
                {
                        arrangeC(L);
                        printf("排序成功");
                        Sleep(1000);
                }
                else if(n==0)
                {
                        Sleep(1000);
                        system("cls");
                        menu(L);
                }
                else
                {
                        puts("選擇錯誤,請重新選擇");
                        Sleep(1000);
                }
        }while(1);
}

void menu(Seqlist &L)//菜單
{
        int n;
        system("cls");
        do
        {
                puts("1:創建元素\t2:查看元素\n3:插入元素\t4:刪除元素\n5:合并元素\t6:排序元素\n");
                puts("請選擇:");
                scanf("%d",&n);
                if(n==1||n==2||n==3||n==4||n==5||n==6)
                {
                        switch(n)
                        {
                                case 1:creat(L);break;
                                case 2:show(L);break;
                                case 3:insert(L);break;
                                case 4:del(L);break;
                                case 5:gather(L);break;
                                case 6:arrange(L);break;
                                default:break;
                        }
                }
                else
                {
                        puts("選擇錯誤,請重新選擇");
                        Sleep(1500);
                        system("cls");
                }
        }while(1);
}

int main()//主函數
{
        Seqlist L;
        L.length_C=0;
        menu(L);
        return 0;
}


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国内精品视频在线观看 | h片在线免费看 | 一区二区视频在线 | 国产成人高清 | 日本中文字幕在线视频 | 久久99深爱久久99精品 | 午夜欧美 | 欧美精品99| 久久国产精品一区二区三区 | 亚洲欧美日韩国产综合 | 久久丝袜视频 | 国产偷自视频区视频 | 人操人免费视频 | 亚洲国产精品日本 | 久久五月婷 | 性色的免费视频 | 一级免费视频 | 91视频久久 | 在线播放中文字幕 | 干一干操一操 | 一区不卡在线观看 | 国产在线一区观看 | 成人精品一区二区三区中文字幕 | 日韩网站在线观看 | 一级黄色毛片免费 | 亚洲巨乳自拍在线视频 | 欧美成人h版在线观看 | 久久久www| 一区二区精品视频 | 久久i| 免费大黄视频 | 欧美一级三级在线观看 | 91精品国产综合久久久动漫日韩 | 欧美综合在线观看 | 日韩中文字幕av | 日韩欧美一级精品久久 | 成人免费久久 | 中文字幕国产视频 | 99久久久久国产精品免费 | 日韩伦理一区二区 | av网站免费在线观看 |