1、给数组赋值。2、输出数组的值。3、求数组元素的最大值。4、对数组用冒泡法排序。5、对数组用选择法排

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int set(int a[],int n)
{ int i;
srand(time(NULL));
for(i=0;i<n;i++)
a[i]=rand()%90+10;
}
int show(int a[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
return a[i];
}
int max(int a[],int n)
{
int max;
for(i=0;i<n;i++)
if(a[i]>max)
max=a[i];
printf("max=%d",max);
printf("\n");
return max;
}
int f(int a[],int n)
{
int i,j,t;
for(i=0;i<n;i++)
for(j=1;j<n-i;j++)
if(a[i]>a[j])
{t=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
return a[i];
}
int g(int a[],int n)
{
int i,j,k,t,max;
for(i=0;i<n;i++)
{max=a[i];
k=i;
for(j=i;j<n+1;j++)
if(max<a[j])
{max=a[j];
k=j;}
t=a[i];
a[i]=a[k];
a[k]=t;
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return a[i];
}
int main()
{
int a[10];
show(a,10);
max(a,10);
f(a,10);
g(a,10);
return 0;}
求大神帮忙看下哪里出错了。感激不尽。

第1个回答  2013-06-23

  # include<stdio.h>


  int main (void)

  {

  int a[10]; /*数组变量*/

  int itemp; /*最小值变量*/

  int i,j; /*循环使用的变量*/

  int itop; /*记录当前位置变量*/


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

  {

  printf ("a[%d]=",i);

  scanf ("%d",&a[i]);

  }


  for (i=0;i<9;i++) /*从小到大排序*/

  {

  itemp=a[i]; /*设置最小值itemp*/

  itop=i; /*记录当前下标位置*/

  for (j=i+1;j<10;j++) /*从a【1】循环*/

  {

  if (a[j]<itemp) /*找出小于itemp的值*/

  {

  itemp=a[j]; /*把小于itemp的值赋值给itemp*/

  itop=j; /*记录当前位置*/

  }

  }

  a[itop]=a[i]; /*把最小值与用if找出的更小的值进行互换*/

  a[i]=itemp;

  }

  for (i=0;i<10;i++) /*循环输出a【i】的值*/

  {

  printf ("%d\t",a[i]);

  if (i==4) /*到输出的a【4】进行换行*/

  printf ("\n");

  }


  return 0;

  }


追问

我这用的是函数的嵌套调用,不怎么会,不知道我那些的那里有错,帮找下。谢了

追答

vc++编译器里运行错误是会提示的,可能是你某个字符标点符号错误了

相似回答