为了账号安全,请及时绑定邮箱和手机立即绑定

能帮看一下这哪错了

能帮看一下这哪错了

C
吴宥 2015-04-28 10:46:23
#include<stdio.h>int main(){    int a[10],i,j,t;    printf("请输入十个数\n");    for(j=0;j<10;j++)    scanf("%d",&a[j]);    for(i=0;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(j=0;j<10;j++)        printf("%-5d",&a[j]);        printf("\n");    }}
查看完整描述

1 回答

已采纳
?
Absolute_Duo

TA贡献13条经验 获得超1个赞

你这个是冒泡排序吧,有两个问题:

1、 if(a[j]>a[j+1])

                t=a[j];a[j]=a[j+1];a[j+1]=t;

这个if语句后面的内容应用{}括上

 if(a[j]>a[j+1])

             {   t=a[j];a[j]=a[j+1];a[j+1]=t;   }

2、冒泡的二重循环应该是

for(i=1;i<10;i++)             //如果i从0开始那么内循环为for(j=0;j<10;j++)则最后j=9然而a[j+1]就是a[10]超出数组范围

    {

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

        {


查看完整回答
反对 回复 2015-04-28
  • 1 回答
  • 0 关注
  • 1069 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信