C语言 数组遇到问题

nurdan0 2008-05-10 04:43:57
题目:
编写程序,在main函数中定义并建立一个整型数组a[80],输入一个整数N并建立数组a[N],将数组a和变量max、min传递给所定义的子函数fun,在子函数中完成数组的排序(从小到大),并将数组的第一个元素和最后一个元素分别通过min、max返回到main()函数,在main()函数中输出数组的最大值、最小值和数组元素的个数。


代码我实在是些不出来 ~~~大虾们帮忙
...全文
135 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shancao 2008-05-11
  • 打赏
  • 举报
回复
#include<stdio.h>

void Fun(int min,int max,int a[])
{
int temp;
for(int i=max-1;i>0;i--)
{
for(int j=0;j<i;j++)
if(a[j] > a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
printf("最小元素值=%d,最大的元素值 = %d,元素的个数 = %d\n",a[min],a[max-1],max-min);
}

void main()
{
int a[80],N;
printf("请输入元素的个数: ");
scanf("%d",&N);
printf("请输入各个元素的值: ");
for(int i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
Fun(0,N,a);
}

chlaws 2008-05-10
  • 打赏
  • 举报
回复
楼上的几位哥们也太对不起LZ
就一冒泡排个序的东西怎么要写怎么长
WEN2222 2008-05-10
  • 打赏
  • 举报
回复
#include <stdio.h>
void fun(int*m,int*n,int array[],int b);
main()
{
int max,min,n,i;
scanf("%d",&n);
int a[n];
for (i=0;i<n;i++)
scanf("%d",&a[i]);
fun(&max,&min,a,n);
printf("%d %d",max,min);
system("pause");
return 0;
}
void fun(int *m,int *n,int array[],int b)
{
int i,j,temp;
for (i=0;i<b;i++)
for(j=0;j<b-1;j++)
if(array[j]>array[j+1])
{ temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;}
*n=array[0];
*m=array[b-1];
}

fengdream 2008-05-10
  • 打赏
  • 举报
回复
代码测试通过了




#include "stdio.h"

fun(int *min, int* max, int *a)
{
int i,j,tmp;
for(i=0;i<*max;i++)
for(j=i+1;j<*max;j++)
if(a[i]>a[j])
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}

*min =a[0];
j=*max;
*max = a[j-1];
return 0;
}

void main()
{
int min,max,n,i;
int *a;

scanf("%d",&n);
a=(int*)malloc(n*sizeof(int));
for(i=0;i<n;++i)
{
//srand((int)time());
a[i]=(int)(rand()%100);
}

max = n;

printf("\nsort before:\n");
for(i=0;i<n;++i)
printf("%d\t",a[i]);


fun(&min,&max,a);

printf("\nsort after:\n");
for(i=0;i<n;++i)
printf("%d\t",a[i]);


printf("\nmin is %d, max is %d\n",min,max);
}

nurdan0 2008-05-10
  • 打赏
  • 举报
回复
我根本看不懂
jieao111 2008-05-10
  • 打赏
  • 举报
回复
没时间了,有待修改
jieao111 2008-05-10
  • 打赏
  • 举报
回复
int sort_function( const void *a, const void *b) 
{
if(*(int*)a>*(int*)b)
return 1;
else if(*(int*)a<*(int*)b)
return -1;
else
return 0;
}
void fun(int* min,int* max,int**a)
{
int n=sizeof(*a)/sizeof(int);
qsort((void*)*a, n, sizeof(int), sort_function);
}

void main()
{
int min=0,max=0,n,i,m;
scanf("d%",&n);
int* a=(int*)malloc(n);
for(i=0;i<n;++i)
{ srand((int)time(0));
m=(int)(rand()%100);
a[i]=m;
}
fun(&min,&max,&a);
for(i=0;i<n;++i)
cout<<a[i]<<endl;
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧