注册 登录
编程论坛 VC++/MFC

请教高手,这个程序怎么错了?

tianshilei 发布于 2010-11-27 19:48, 576 次点击
这是一个作业题目,要求引用函数来用冒泡排序法排出10个数的顺序,然后输出。
编译的时候总是提示:error C2182: 'sort' : illegal use of type 'void'和error C2064: term does not evaluate to a function
不知道是怎么回事,高手们请指教……
#include <stdio.h>
void main()
{ int a[10],i;
  void sort(a[10]);
  printf("请输入10个整数,每输入一个按一次回车键。");
  for(i=0;i<10;i++)
   scanf("%d",&a[i]);
  sort(a[10]);
}
void sort(int a[10])
{ int t,j,i;
  for(i=0;i<10;i++)
   for(j=0;j<9;j++)
    if(a[j]<a[j+1])
    { t=a[j];
      a[j]=a[j+1];
      a[j+1]=t;
    }
   for(i=0;i<10;i++)
    printf("%d ",a[i]);
}
5 回复
#2
cnfarer2010-11-27 21:45
void sort(a[10]);
void sort(int a[10])
sort(a[10]);

这些都是不正确的!!!

#3
tianshilei2010-11-27 22:03
回复 2楼 cnfarer
版主大人,咋错了,给小弟指教一下吧……
我们C语言老师木头人,啥也没讲呀……看书看了这么破羊……
#4
xishui7772010-11-27 22:59
#include <stdio.h>
void sort(int *a)
{ int t,j,i;
  for(i=1;i<10;i++)
   for(j=0;j<10-i;j++)
    if(a[j]<a[j+1])
    { t=a[j];
      a[j]=a[j+1];
      a[j+1]=t;
    }
   for(i=0;i<10;i++)
    printf("%d ",a[i]);
}
void main()
{ int a[10],i;
  printf("请输入10个整数,每输入一个按一次回车键。");
  for(i=0;i<10;i++)
   scanf("%d",&a[i]);
sort(a);
}
#5
xishui7772010-11-27 23:00
应该没问题,似似看
#6
zcc4172010-11-28 22:06
#include <stdio.h>
void sort(int a[10]);
void main()
{
    int a[10],i;
    printf("请输入10个整数,每输入一个按一次回车键。\n");
      for(i=0;i<10;i++)
    scanf("%d",&a[i]);
    sort(a);
    printf("\n");
}
void sort(int a[10])
{
    int t,j,i;
    for(i=0;i<10;i++)
    for(j=0;j<9-i;j++)
    {
       if(a[j]<a[j+1])
       { t=a[j];
         a[j]=a[j+1];
         a[j+1]=t;
       }
    }
   for(i=0;i<10;i++)
   printf("%d ",a[i]);
}
1