m0_60637121 2021-08-01 23:15 采纳率: 100%
浏览 49
已结题

用排序法实现不了功能,哪里错了

我用选择排序法,怎么编写的代码实现不了呢,
#include <stdio.h>
int main()
{
int a[10],i,j,k,temp;
printf("请输入10位数\n",a[i]);
for(i=0;i<10;i++)
{
scanf("% d",&a[i]);
}
for(i=0;i<9;i++)
{
k=i;
for(j=1;j<10;j++)
{
if(a[k]>a[j])

             { k=j;}
          
      }
  if(k!=i)
  {
        temp=a[k];
        a[k]=a[i];
        a[i]=temp;
  }
 }
 printf("调序之后得数是:% d\n");
 for(i=0;i<10;i++)
 
  {  printf("% d",a[i]);}
 
 printf("\n");
 return 0;

}

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-08-01 23:19
    关注

    for(j=1;j<10;j++)这里你写错了,应该是for(j=i+1;j<10;j++)
    j 从i+1(或者i)开始,不是从1开始,你把i写成1了

    #include <stdio.h>
    int main()
    {
        int a[10],i,j,k,temp;
        printf("请输入10位数\n",a[i]);
        for(i=0;i<10;i++)
        {
            scanf("% d",&a[i]);
        }
        for(i=0;i<9;i++)
        {
            k=i;
            for(j=i;j<10;j++)//这里,你把i写成1了
            {
                if(a[k]>a[j])
                { k=j;}
    
            }
            if(k!=i)
            {
                temp=a[k];
                a[k]=a[i];
                a[i]=temp;
            }
        }
        printf("调序之后得数是:% d\n");
        for(i=0;i<10;i++)
    
        {  printf("% d",a[i]);}
    
        printf("\n");
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月13日
  • 已采纳回答 8月5日
  • 创建了问题 8月1日

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退