哪位C语言高手帮我编下这道题啊 急!

2025-01-05 14:38:19
推荐回答(4个)
回答1:

#include

void output(int s[10]) //此函数用来输出
{int i;
for(i=0;i<10;i++)
printf("%d ",s[i]);
}

void input(int s[10]) //此函数用以输入
{int i;
for(i=0;i<10;i++)
scanf("%d",&s[i]);
}

void swap(int * a,int *b)
{int temp;
temp=*a;
*a=*b;
*b=temp;

}

void main()
{int min=0;
int max=0;
int x=0,y=0,i=0; //定义x用来存储最小值的编号,y有来存最大值的编号
//i用来控制循环
int num[10];
input(num); //注意:输入,输出的函数input,output要用数组名
//num做为实参

max=min=num[0];
for(i=0;i<10;i++)
{ if(num[i] {min=num[i];
x=i;}
if(num[i]>max)
{max=num[i];
y=i;}
}
swap(&num[0],&num[x]); //用指针的方法才能实现在函数中处理两个
//数调换
swap(&num[9],&num[y]);
output(num);
}

本题经过上机调试,可以达到要求

回答2:

冒泡法啊,教科书上到处都是,随便找本资料看看

回答3:

64
75
365
75
34
897
35
76
26
43
26 75 365 75 34 43 35 76 64 897
Press any key to continue

#include
using namespace std;

f1(int a[]) {
for(int i = 0; i < 10; i++)
cin>>a[i];
}

f2(int a[]) {
int max, min;
max = min = 0;
for(int i = 1; i < 10; i++) {
if(a[max] < a[i]) max = i;
if(a[min] > a[i]) min = i;
}
if(min) { i = *a; *a = a[min]; a[min] = i;}
if(max) { i = a[9]; a[9] = a[max]; a[max] = i;}
}

f3(int a[]) {
for(int i = 0; i < 10; i++)
cout< cout<}

main() {
int a[10];
f1(a);
f2(a);
f3(a);
}

回答4:

既然是用C语言编程,我给你一套标准C语法的程序代码(与C++是有区别的):

#include

void inputdata(int *data);
void sortdata(int *data);
void outputdata(int *data);

main()
{
int data[10];

inputdata(data);
sortdata(data);
outputdata(data);
}

void inputdata(int *data)
{
int i;

for(i=0;i<=9;i++)
{
printf("input number %d :\n",i+1);
scanf("%d",&data[i]);
}
}

void sortdata(int *data)
{
int i,j,n;

for(i=0;i<=9;i++)
for(j=i+1;j<=9;j++)
if(data[j] {
n=data[i];
data[i]=data[j];
data[j]=n;
}
}

void outputdata(int *data)
{
int i;

printf("10 data output (min to max) :\n");

for(i=0;i<=9;i++)
{
printf("%d",data[i]);
// for beautiful view , a ',' added for data 1-9
if(i<=8) printf(",");
}
}