利用指针编写一个函数fun,函数的功能是把数组中的最大数和最小数交换。在主函数中输入10个整数,调用函

如题所述

#include <stdio.h>

#define SIZE 10

void swap_max_and_min(int *a, int n) {
    int *minp = a, *maxp = a;
    int *end = a + n;
    while (a < end) {
        if (*a > *maxp) {
            maxp = a;
        }
        if (*a < *minp) {
            minp = a;
        }
        a++;
    }
    int t = *minp;
    *minp = *maxp;
    *maxp = t;
}

int main() {
    int a[SIZE];
    int i;
    for (i = 0 ; i < SIZE; i++) {
        scanf("%d", &a[i]);
    }
    swap_max_and_min(a, SIZE);
    for (i = 0 ; i < SIZE; i++) {
        printf("%d ", a[i]);
    }
    printf("\n");
    return 0;
}

追问

有一个错误啊

追答

什么错误?

追问

C:\Documents and Settings\All Users\「开始」菜单\程序\Microsoft Visual C++ 6.0\发的的份上.c(17) : error C2143: syntax error : missing ';' before 'type'

追答

你确定是我代码的问题?自己好好看看自己的代码哪里没加分号

追问

那个我是粘贴复制的 我对了一遍没打错 实在不行你试试执行能否 在抓个图

追答

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-18
void fun(int *k)
{
int *temp1,*temp2,*temp,temp0;

int i;

temp1=temp2=k;

for(i=0;i<10;i++)

{
if(*temp1++<*temp1)

temp=temp1;

if(*k++>*k)

temp2=k;

}
*temp0=*temp;

*temp=*temp2;

*temp2=*temp0;

}

...的最大数和最小数交换。在主函数中输入10个整数,调用函
*maxp = a; int *end = a + n; while (a < end) { if (*a > *maxp) { maxp = a; } if (*a < *minp) { minp = a; } a++; } int t = *minp; *minp

...函数int fun(int *a, int n),函数的功能是把数组a中最大数和最小数...
int fun(int *a, int n) { int max = 0, min=0;for(int i=0:i<n;i++) { if(a[i]>a[max])max = i;if(a[i]

...max,函数功能为求出数组a中的最大值,在主函数中输入10个整数,调用...
include <stdio.h>#include <string.h>void max(int i[]){int max;max = i[0];for(int a = 1;a<10;a++)if(max<i[a]) max=i[a];printf("\\n最大数是:%d\\n\\n",max);} int main(){int i[20];printf("求最大数,请输入 10 个数,空格隔开:");for(int a = 0;a<...

语言中,fun函数的功能是将一组得分中的最高分和最低分去掉,然后求平均...
我认为效率比较高的是先排序,再去掉数组中第一个和最后一个,中间的就好办了,排序的方法相当多。这里就不写出来了 ,自己找印象才深刻。

...*a,int n),实现把数组a中最大数和最小数交换 完整题目如下
代码如下:include <stdio.h>#include <stdlib.h>#define N 10int fun(int *a, int n){int j, temp;int *max = a, *min = a;for (j = 0; j < 10; j++) {if (*max < *(a + j))max = (a + j);if (*min > *(a + j))min = (a + j);}temp = *max;*max...

⑵ 请编写一个函数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;} }

罗马废墟函数FUN的功能是; 把形参a所指数组中的最大值放杂a[0]中...
void fun(int ___1___ , int n) *a { int i, j, max, min, px, pn, t;\/***found***\/ for (i=0; i<n-1; i+=___2___) 2 { max = min = a[i];px = pn = i;\/***

给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者...
STD fun(STD std[],int n){ STD max; int i;max=std[0];for(i=1;i<n;i++)if(max.age<std[i].age) max=std[i];return max;} main(){ STD std[5]={"aaa",17,"bbb",16,"ccc",18,"ddd",17,"eee",15};STD max;max=fu...

C语言中,fun函数的功能是将一组得分中的最高分和最低分去掉,然后求平均...
double fun(double *a,int n){ if(n<3) \/\/如果数组大小小于3,那么直接返回0(去掉最大和最小后没有数据了)return 0;int i;double total,min,max;total=0;\/\/保存成绩的和 min = 1000;\/\/保存最小成绩 max = 0; \/\/保存最大成绩 for(i=0; i<n; i++){ if(min > a[i]...

2011年全国计算机等级考试2级C语言机试题库
请编写函数fun,函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。void fun(char s[][N],char *b){int i,j,n=0;for(i=0;i<N;i++)\/*请填写其相应语句完成其功能*\/{ for(j=0;j<M;j++) {b[n]=s[j][i];n=i*M+j+1;}}b[n]='\\0';}第三套1. ...

相似回答