编写一个函数,该函数的功能是将一个整数数组中的最大值与第一个元素交换,最小值与最后一个元素交换,交换后输出数组的值。在main函数中调用并检测该函数。
#include<stdio.h>
int input();
int abc();
int output();
intmain(){
int num[10];
input();
abc();
output();
}
int input()
{
int num[10];
int i;
for(i=0;i<9;i++)
scanf("%d",&num[i]);
scanf("%d",&num[9]);
}
int abc()
{
int x[10];
int*max,*min,k,l;
int*p,*m;
m=x+10;
max=min=x;
for(p=x+1;p<m;p++)
if(*p>*max)
max=p;
k=*max;
l=*min;
*p=x[0];x[0]=l;l=*p;
*p=x[9];x[9]=k;k=*p;
return 0;
}
int output()
{
int x[10];
int*p;
for(p=x;p<x+9;p++)
printf("%5d",*p);
printf("%5d\n",x[9]);
}
求大神帮看一看哪里不对,可以运行但不是题目要求
给你代码如下:
#include<stdio.h>
#define N 10 // 定义数组元素为10个
void input(int a[]);
void abc(int a[]);
void output (int a[]);
int main ()
{
int num[N];
input (num); // 向指定数组中输入数据
abc (num); // 处理指定数组中的数据
output (num); // 输出指定数组中的数据
return 0;}
void input (int a[])
{
int i;
for (i = 0; i < N; i++)
{
scanf ("%d", &a[i]);
}
}
void abc(int a[])
{
int minValue = a[0];
int maxValue = a[0];
int minPosition = 0;
int maxPosition = 0;
int i;
for (i=1; i<N; i++)
{
if (a[i] < minValue) // 比最小值更小,则记住最小值和位置
{
minValue = a[i];
minPosition = i;
}
if (a[i] > maxValue) // 比最大值更大,则记住最大值和位置
{
maxValue = a[i];
maxPosition = i;
}
}
// 交换第一个元素和最大值
i = a[0];
a[0] = a[maxPosition];
a[maxPosition] = i;
// 交换最后一个元素和最小值
i = a[N-1];
a[N-1] = a[minPosition];
a[minPosition] = i;
}
void output (int a[])
{
int p;
for (p = 0; p < N; p++)
{
printf ("%d ", a[p]);
}
printf("\n");
}
运行结果如下:
编写一个函数,该函数的功能是将一个整数数组中的最大值与第一个元素交 ...
include<stdio.h> define N 10 \/\/ 定义数组元素为10个 void input(int a[]);void abc(int a[]);void output (int a[]);int main (){ int num[N];input (num); \/\/ 向指定数组中输入数据 abc (num); \/\/ 处理指定数组中的数据 output (num); \/\/ 输出指定数组中的数据 return 0...
...把一个一维数组中最大的数和第一个数调换,最小的和最后一个数调换...
arr[k] = tmp;\/\/最大值和第一个数交换了 for ( i = 0; i < N; i ++ )if ( arr[i] < min ){ min = arr[i];k = i;} \/\/循环一遍后,arr[k]即为最小值得那个数,k为其下标 tmp = arr[N-1];arr[N-1] = arr[k];arr[k] = tmp;\/\/最大值和第一个数交换了 print...
...编写一个函数fun,函数的功能是把数组中的最大数和最小数交换。在主...
*maxp = a; int *end = a + n; while (a < end) { if (*a > *maxp) { maxp = a; } if (*a < *minp) { minp = a; } a++; } int t = *minp; *minp
C语言输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出...
就是如果最大最小值本来就在第一个或者最后一个的情况.比如, 最小值本来在a[0] 最大值在a[4]这样循环后min=0 max=4 于是 先做了一次交换 a[max]和a[0] 也就是a[4]和a[0]然后 又做了一次交换, a[min]和a[4] 还是a[0]和a[4] 又换回去了.导致最小在a[0] 最大在a[4] ...
⑵ 请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和...
void fun(int a[], int n, int *max, int *d ){ int i;for(i=0,*max=0,*d=0;i<n;i++){ if( a[i] > *max ) *max=a[i],*d=i;} }
编写一个函数 int getMax(const int a[],int n),在数组中找出最大值...
int getMax(const int a[],int n){ int max;max=a[n-1];while(n--){ if(max
...将最大的与第一个数交换,最小的与最后一个数交换,输出交换后的结果...
include <stdio.h>void swap(int *a, int *b){printf("%d, %d\\n", *a, *b);int t = *a;*a = *b;*b = t;}void max_min(int *p, int n){int l = n;int *max = p, *min = p;while (n--) {min = *p > *min ? min : p;p++;}swap(min, --p);while (l...
急求!!!全国计算机等级考试二级C机考题库 附答案的最好 !急!!!
5: 第5题 请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。 答案:void fun(int m, int k, int xx[]){int g=0,I,j,flag=1;for(i=m+1;i<m*m;i++){for(j=0;j<I;j++){if(i%j!=0)flag=1;else{flag=0;break;...
写一个函数,该函数功能为求一维数组的最大值,并返回最大值?
float a[10]){ float max=a[0];int i;for(i=1;i<10;i++){ if(max<a[i])max=a[i];} return max;} int main(){ float a[10] = {};float max = 0;int i;for(i=0;i<10;i++)scanf("%f",&a[i]);max=findMax(a);printf("最大值:%f\\n",max);return 0;} ...
求给定一个整数数组中的最大值
这段 C 代码定义了一个函数 findMax,该函数接受一个整数数组和数组的大小作为参数,并返回数组中的最大值。在 main 函数中,我们创建了一个示例整数数组并调用 findMax 函数来找到最大值,并将结果输出到控制台。include <stdio.h> \/\/ 函数声明 int findMax(int arr[], int n);int main() ...