注册 登录
编程论坛 C++教室

请各位看下,谢谢。

longyou2011 发布于 2011-01-24 10:14, 551 次点击
#include<stdio.h>
#define N 10
main()
{
    int i,j,min,tem,a[N];
    printf("please input ten num:\n");
    for(i=0;i<N;i++)
    {
        printf("a[%d]=",i);
        scanf("%d",&a[i]);
        
    }
    printf("\n");
    for(i=0;i<N;i++)
      printf("%5d",a[i]);
    printf("\n");
    for(i=0;i<N-1;i++)
    {
        min=i;
          if(a[min]>a[j])
            min=j;
            tem=a[j];
            a[j]=a[min];
            
    }
    printf("after sorted\n");
    for(i=0;i<N;i++)
      printf("%5d",a[i]);
}第一个for是什麽意思,第二个for是什麽意思
7 回复
#2
xishui7772011-01-24 12:24
第一个for是给数组a[N]初始化,第二个for显示a[N]初始化的值
#3
xishui7772011-01-24 12:28
    for(i=0;i<N-1;i++)
    {
        min=i;
          if(a[min]>a[j])
            min=j;
            tem=a[j];
            a[j]=a[min];
            
    }
这句你是想排序吧,错误很严重
#4
点线面2011-01-24 12:36
想用选择排序吗
#5
longyou20112011-01-24 12:42
对,对10个数进行排序
#6
点线面2011-01-24 13:24
        for(i=0;i<10;i++)
    {
        min=i;
       for(j=i+1;j<10;j++)
          if(a[min]>a[j])
            min=j;
           temp = a[i];
           a[i] = a[min];
           a[min] = temp;            
    }
#7
qq10235692232011-01-24 16:24
选择排序,错误啊。纠正如下:
#include<stdio.h>
#define N 10
main()
{
    int i,j,tem,a[N];
    printf("please input ten num:\n");
    for(i=0;i<N;i++)
    {
        printf("a[%d]=",i);
        scanf("%d",&a[i]);
        
    }
    printf("\n");
    for(i=0;i<N;i++)
      printf("%5d",a[i]);
    printf("\n");
    for(i=0;i<N-1;i++)
      for(j=i+1;j<N;j++)
          if(a[i]>a[j])
           {
            tem=a[i];
            a[i]=a[j];
            a[j]=tem;
           }
   printf("after sorted:\n");
    for(i=0;i<N;i++)
      printf("%5d",a[i]);
}
#8
lyj2010lyj2011-01-24 17:06
第一个是对所输入的数据储存在a【x】(x:所输入的数据)。
第二个是对a【】排序。
1