从键盘输入8个整数保存到数组中,运用选择法按大到小排序后输出数组.(c语言编写)。

回答都很好,但是悬赏只有一个,谢谢了!

#include <stdio.h>
#define N 8

main()
{
 int num[N];
 int i,j;
 int temp;

 printf("inpute 8 integers:");
 for(i=0; i<N; i++)
 scanf("%d", &num[i]);

   for(i=0; i<N-1; i++) /*控制比较的趟数*/
      for(j=i+1; j<N; j++) /*控制每趟比较中找到最大的数*/
{
  if(num[i]>num[j])
     {
temp=num[i];               /*数组元素进行交换*/
num[i]=num[j];
num[j]=temp;
      }
}

 for(i=0; i<N; i++)     /*输出已排好序的数组元素,域宽为4*/
printf("%4d",num[i]);

printf(" ok \n");
 }

答题不易,满意请采纳,其他问题请采纳后追问。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-17
#include <stdio.h>
#define N 8
int main()
{
int a[N],i,j,t,temp;
printf("请赋值!\n");
for(i=0;i<N;++i)
scanf("%d",a+i);
for(i=0;i<N;++i)
printf("%5d",a[i]);
printf("\n");
for(i=0;i<N;++i)
{
t=i;
for(j=i+1;j<N;++j)
if(a[t]<a[j])//如何后面的值比前面的大就交换保证第一个数值最大
t=j;
if(i!=t)//判断t是否等于i 如果等于就证明第一个元素的最大的就不交换如果不是就交换
{
temp=a[i];
a[i]=a[t];
a[t]=temp;
}
}
for(i=0;i<N;++i)
printf("%5d",a[i]);
printf("\n");
return 0;
}