本帖最后由 bin554385863 于 2019-7-17 20:56 编辑 #include <stdio.h>
/*用结构体存储结果*/
typedef struct
{
int min;
int max;
} comp;
/*冒泡排序*/
void sort(int *arr, int size)
{
int temp;
for (size_t i = 0; i < size; i++)
{
for (size_t j = 0; j < i; j++)
{
if (arr[j] > arr[i])
{
temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
}
/*定义一个结构体函数同时返回两个结果*/
comp *compare(int *arr, int key, int size, comp *value)
/*key是要比较的那个数,size是数组的长度,value是存储结果的结构体指针*/
{
int *t = arr;
for (size_t i = 0; i < size; i++)
{
/*三元运算符计算结果*/
value->min = (t[i] < key) ? t[i] : key;
break;
}
for (size_t j = size -1; j >= 0; j--)
{
value->max = (t[j] > key) ? t[j] : key;
break;
}
return value;
}
int main(int argc, char const *argv[])
{
int a[] = {
12,
66,
88,
989,
878,
66,
99,
88,
99,
100,
};
int s = sizeof(a)/sizeof(a[0]);
int i;
comp *result;
scanf("%d", &i);
sort(a, s);
compare(a, i, s, result);
printf("最小值是: %d\n最大值是: %d", result->min, result->max);
return 0;
}
-----------------------------------------------------------------------------------
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
E:\Administrator\Documents\My C>cmd /C "c:\Users\Administrator\.vscode\extensions\ms-vscode.cpptools-0.24.0\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-in3wtcx3.uwa --stdout=Microsoft-MIEngine-Out-y5xjaknd.ycg --stderr=Microsoft-MIEngine-Error-3g0wkqaw.i5p --pid=Microsoft-MIEngine-Pid-eic55jkb.rj1 --dbgExe=E:\MinGW\bin\gdb.exe --interpreter=mi "
42
最小值是: 12
最大值是: 989
E:\Administrator\Documents\My C>
---------------------------------------------------------------
想要函数返回多个值,要么用结构体,要么用指针作为参数 |