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



