为什么会这样?

编程题... 编程题 展开
 我来答
百度网友b6c10fe
2018-12-22 · TA获得超过367个赞
知道小有建树答主
回答量:157
采纳率:85%
帮助的人:40.6万
展开全部

输出这样的结果主要原因是:

  • 并没有把number的值赋值到数组元素中;

  • number属于内部的变量,用完会归还给内存;

  • 导致输出错误的结果;

  • 详细分析如下:(遇到问题别慌,此处教你使用增加printf打印输出语句来测试问题出现的位置及原因)如图:详见代码

  • /*坚持解决问题的同时教会别人解决问题的方法:授人以鱼不如授人以渔*/

    解决方法:

    1. 1.先把a[N]=number;//把输入的数字赋值给数组中最后一个没有赋初值的元素上

    2. 2.使用数组的大小比较(例如冒泡比较)

    3. 3.输出比较后的数组

    4. 4测试OK

    #include <stdio.h>

    #define N 11

    //int number;//定义成全局变量,把number移到这里再测试

    int main()

    {

    int i,number,a[N]={1,2,4,6,8,9,12,15,149,156};

    printf("Please Enter an Integer In The Array:\n");

    scanf("%d",&number);

    printf("The Original Arrya:\n");

    for(i=0; i<N-1; i++)

    {

    printf("%5d",a[i]);

    }

    printf("\n");

    for(i=N-1; i>=0; i--)

    {

    if(number <= a[i])

    {

    a[i] = a[i-1];

    printf("%5d%5d%5d\n",number,a[i],a[10]);//调试用词句并没有执行

    }

    else    //这个else放在for循环内

    {

    a[i+1] = a[i];

    break;

    }

    printf("%5d%5d\n",a[i],a[i+1]);//调试用词句并没有执行

    }

    printf("%5d%5d\n",a[0],a[10]);//调试用,到这一步a[0]仍然为1

    printf("%5d%5d\n",a[0],number);//调试用,执行完这一步时number为0

    if(number < a[0])   //number=0 小于 a[0]=1,所以执行赋值语句,把a[0]=0;

    {

    a[0] = number;

    printf("%5d%5d\n",a[0],number);//调试用,

    }

    printf("The Result Arrya:\n");

    for(i=0; i<N; i++)

    {

    printf("%5d",a[i]);

    }

    printf("\n");

    return 0;

    }

追答
#include 
#define N 11
int number;//定义成全局变量
int main()
{
    int i,a[N]={1,2,4,6,8,9,12,15,149,156};
    int j;//循环变量(中心思想:外层循环控制行,内层循环控制列)
    int temp;//存储临时数据
    printf("Please Enter an Integer In The Array:\n");

    scanf("%d",&number);
    printf("The Original Arrya:\n");
    for(i=0; i a[j+1])
            {
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }
    for(i=0; i<N; i++)
    {
        printf("%5d",a[i]);
    }
    printf("\n");
    return 0;
}

汪杨聊情感
2020-06-23 · 汪杨:七年情感挽回经验,二级心理咨询师
汪杨聊情感
采纳数:1453 获赞数:139090

向TA提问 私信TA
展开全部

为什么男人会这样?女人一定要看

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式