剔除数组中的某个数后,输出剩余的元素
#include <stdio.h>
#define num 5
int eliminate_num(int arr[], int a)
{
int j = 0;
for (int i = 0; i < num; i++)
{
if (arr[i] != a)
{
arr[j] = arr[i];
j++;
}
}
return j;
}
void Printf_arr(int arr[],int j)
{
for (int i = 0; i < j; i++)
{
printf("%d ", arr[i]);
}
}
int main()
{
//输入一个数组,和要剔除的数
printf("输入一个数组");
int arr[num] = { 0 };
for (int i = 0; i < num; i++)
{
scanf_s("%d", &arr[i]);
}
printf("输入一个数");
int del = 0;
scanf_s("%d", &del);
//写一个剔除函数
int j = eliminate_num(arr, del);
//输出剔除后的数组
Printf_arr(arr, j);
return 0;
}
输出数组中的最小值,最大值,最大差值
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void MaoPao_dispaly(int arr[], int sz)
{
int j = 0;
for (int i = 0; i < sz - 1; i++)
{
for (j = 0; j < sz - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main()
{
//生成10个0-99的随机数
srand((unsigned int)time(NULL));
int arr[10] = { 0 };
for (int i = 0; i < 10; i++)
{
arr[i] = rand() % 100;
}
//显示上述的10个随机数
printf("10个学生成绩:");
for (int i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
//从小到达排序
MaoPao_dispaly(arr, sizeof(arr) / sizeof(arr[0]));
//输出最大值,最小值,最大差值
printf("最小值=%d 最大值=%d 最大差值=%d\n", arr[0], arr[9], arr[9] - arr[0]);
}
优化: 直接得出最大值和最小值
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
//生成10个0-99的随机数
srand((unsigned int)time(NULL));
int arr[10] = { 0 };
for (int i = 0; i < 10; i++)
{
arr[i] = rand() % 100;
}
//显示上述的10个随机数
printf("10个学生成绩:");
for (int i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
//取最大值
int max = arr[0];
for (int i = 1; i < 10; i++)
{
if (arr[i] > max)
{
max = arr[i];
}
}
//取最小值
int min = arr[0];
for (int i = 1; i < 10; i++)
{
if (arr[i] < min)
{
min = arr[i];
}
}
//输出最大值,最小值,最大差值
printf("最小值=%d 最大值=%d 最大差值=%d\n", min, max, max - min);
return 0;
}
优化: 循环次数相同看情况进行合并
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
//生成10个0-99的随机数
srand((unsigned int)time(NULL));
int arr[10] = { 0 };
int max = 0;
int min = 100;
printf("10个学生成绩:");
for (int i = 0; i < 10; i++)
{
arr[i] = rand() % 100;
//显示上述的10个随机数
printf("%d ", arr[i]);
//取最大值,最小值
if (arr[i] > max)
{
max = arr[i];
}
if (arr[i] < min)
{
min = arr[i];
}
}
printf("\n");
//输出最大值,最小值,最大差值
printf("最小值=%d 最大值=%d 最大差值=%d\n", min, max, max - min);
return 0;
}