标题:卡死在第八排输出,在线求解
只看楼主
朝F
Rank: 1
等 级:新手上路
帖 子:8
专家分:7
注 册:2019-11-7
结帖率:66.67%
已结贴  问题点数:10 回复次数:3 
卡死在第八排输出,在线求解
#include<stdio.h>
int main()
{
    int a[5]={1    },*p,i,max,j=0;
    p=a;
    for(i=0;i<5;i++)
    {scanf("%d",p++),j++;}
    printf("%d\n%d\n",*p,j);
    p=a;
    max=*p;
    for(i=0;i<5;i++,++*p)
    {
        printf("%d   ",*p);
        if(*p>max)
        max=*p;
    }
printf("%d",max);
   
return 0;
}
其他的不说,就第八行的*p,在上面的一个循环语句结束时,p的值应该就是第五个元素的地址的话,那第八行输出不应该是第五个元素的值吗?
为何它输出的是一个随机数??????
搜索更多相关主题的帖子: 输出 i++ printf 在线 max 
2019-11-24 21:13
三尺冰
Rank: 2
等 级:论坛游民
帖 子:17
专家分:50
注 册:2019-10-22
得分:10 
第一个循环退出的时候,i是等于5了,这个时候p就指向越界的第6个元素,
你printf()里用*(--p)就行了


天道酬勤,自强不息
2019-11-24 21:53
朝F
Rank: 1
等 级:新手上路
帖 子:8
专家分:7
注 册:2019-11-7
得分:0 
回复 2楼 三尺冰
所以我故意用了个j来定位呀,我怎么就没发现呢?
2019-11-24 22:01
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
得分:0 
循环语句中变量自增”++”,挺好用的。
但是麻烦的是,如果循环结束后还需要再次使用,就要理清循环结束后该变量的值,要不然容易出错。
2019-11-25 21:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-498051-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.352953 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved