栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言——对数组进行循环删除重复项等操作(沈阳工业大学人机交互课设)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言——对数组进行循环删除重复项等操作(沈阳工业大学人机交互课设)

C语言——对数组进行循环删除重复项等操作(沈阳工业大学人机交互课设)

题目: 编写程序,输入若干个按由小到大的整数(可能有重复数),保存到数组中,利用循环删除所有重复的值,使相等的数只保留一个。
在程序设计中,要实现程序的模块化设计。在界面设计中,要解释说明如何是以用户为中心进行设计的。

  1. 运行截图




  2. 代码

#include 
#include 
#define N 100
//菜单
void menu() {
    printf("ttt--------------------------------tttn");
    printf("ttt1.Created by Lemon from Software engineering class 1906 tttn");
    printf("ttt1.输出原数组元素tttn");
    printf("ttt2.对数组数字进行排序(小—>大)tttn");
    printf("ttt3.对数组数字进行排序(大—>小)tttn");
    printf("ttt4.删除数组中的重复的数字tttn");
    printf("ttt5.对输入的数字进行求和tttn");
    printf("ttt6.计算重复数字个数	tttn");
    printf("ttt7.计算剔除后数据的和tttn");
    printf("ttt8.求取数组中的最大值tttn");
    printf("ttt9.求取数组中的最小值tttn");
    printf("ttt10.红白对比界面tttn");
    printf("ttt11.恢复黑白界面tttn");
    printf("ttt12.退出tttn");
    printf("ttt--------------------------------tttn");
}
//排序(从小到大)
void Sort_1(int arr[], int k) {
    int temp;
    for (int i = 0; i < k - 1; i++) {
        for (int j = 0; j < k - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }

}
//排序(从大到小)
void Sort_2(int arr[], int k) {
    int temp;
    for (int i = 0; i < k - 1; i++) {
        for (int j = 0; j < k - 1 - i; j++) {
            if (arr[j] < arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }

}
//计算重复数字个数	
int getNum(int arr[], int n)
{
    for (int i = 0; i < n - 1; i++)
    {
        for (int j = i + 1; j < n; j++)
        {
            if (arr[i] - arr[j])
            {
                return *(arr + i);
            }
        }
    }
    return 0;
}

//求和
void Sum(int arr[], int k, int sum) {
    for (int i = 0; i < k; i++) {
        sum += arr[i];
    }
    printf("%d", sum);
}

//删除重复项
int del_same(int date[], int n)
{
    int temp;
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - 1 - i; j++) {
            if (date[j] > date[j + 1]) {
                temp = date[j];
                date[j] = date[j + 1];
                date[j + 1] = temp;
            }
        }
    }
    int i, j, k = 0;
    for (i = 0; i < n; ++i)//i用来遍历数组
    {
        for (j = i + 1; j < n && date[i] - date[j]; ++j);
        if (!(j - n))//没有重复元素
            date[k++] = date[i];//可将date[]看作两个数组
    }
    return k;//返回删除后的有效长度*/

}
//求数组中的最大值
int  LookforMaxNum(int arr[], int n) {
    int max = arr[0];
    int temp;
    for (int i = 0; i < n-1; i++) {
        if (arr[i + 1] > max) {
            max = arr[i + 1];
        }
    }
    return max;
}
//求数组中的最小值
int  LookforMinNum(int arr[], int n) {
    int min = arr[0];
    int temp;
    for (int i = 0; i < n - 1; i++) {
        if (arr[i + 1] < min) {
            min = arr[i + 1];
        }
    }
    return min;
}

//输出
void Display(int arr[], int  k) {
    for (int j = 0; j < k; j++) {
        printf("%2d", arr[j]);
    }
}

int main()
{
    int date[100], date_1[N], date_2[N], date_3[N],date_4[N], i, j, k, l, z, n = 0;
    int sum = 0;
    int sum_1 = 0;
    while (1) {
        int c;
        printf("ttt是否需要停止输入:若需停止输入请输入0反之请输入1tttn");
        scanf("%d", &c);
        if (c == 1 || c == 0) {
            if (c == 1) {
                printf("a[%d]=", n);
                scanf("%d", &date[n]);
                date_1[n] = date[n];
                date_2[n] = date[n];
                date_3[n] = date[n];
                date_4[n] = date[n];
            }
            else if (c == 0) {
                system("cls");
                break;
            }
        }
        else
        {
            printf("错误!请输入1或0,请您重新输入!");
            printf("n");
            continue;
        }
        n++;
    }
    l = n;
    z = n;
    int size = sizeof(date) / sizeof(date[0]);
    int ret = getNum(date, n);
    int max = LookforMaxNum(date, n);
    int min= LookforMinNum(date, n);
    while (1) {
        int a;
        printf("请选择功能对应的序号n");
        menu();
        scanf("%d", &a);
        if (a > 0 && a < 13) {
            if (a == 1) { system("cls"); Display(date, n); printf("n"); continue; }
            if (a == 2) { system("cls"); Sort_1(date_3, n); Display(date_3, n); printf("n");  continue; }
            if (a == 3) { system("cls"); Sort_2(date_4, n); Display(date_4, n); printf("n");  continue; }//添加
            if (a == 4) {
                system("cls"); {  k = del_same(date_1, l);
                for (i = 0; i < k; ++i)
                {
                    Sort_1(date_1, l);
                    printf("%4d", date_1[i]);
                }
                printf("n");
                 continue; }
            }
            if (a == 5) { system("cls"); Sum(date, n, sum); printf("n"); continue; }
            if (a == 6) { system("cls"); printf("%dn", ret); printf("n"); continue; }
            if (a == 7) {
                system("cls"); {  j = del_same(date_2, z);
                for (i = 0; i < j; ++i)
                {
                    Sort_1(date_2, z);
                }
                Sum(date_2, j, sum_1);
                printf("n");
                continue;
                }
            }
            if (a == 8) { system("cls"); printf("%d", max); printf("n"); continue; }//求最大值
            if (a == 9) { system("cls"); printf("%d", min); printf("n"); continue; }//求最小值
            if (a == 10) { system("cls"); system("color f4"); printf("n"); continue; }
            if (a == 11) { system("cls"); system("color 0f"); printf("n"); continue; }
            if (a == 12) { system("cls"); printf("nthank for your using!"); exit(0); }//退出
        }else {
            {
                system("cls");
                printf("错误!请输入对应功能序号n");
                continue;
            }
        }
        return 0;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/384865.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号