| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1381 人关注过本帖
标题:请问下,为什么我这段程序输出会出现问题呢?
只看楼主 加入收藏
青少年世代
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-12-8
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:10 
请问下,为什么我这段程序输出会出现问题呢?
下面这段程序我是从中抽出最大值、次大值,和第三大的数值,并且把位置也赋值了
程序代码:
#include<stdio.h>
void main()
{
    int a[10]={2,6,7,9,10,30,4,20,30,0},b[6];
    int i,j,n=10;
    for(i=0;i<n-2;i++)
    {
        if(a[1]<a[0])
        {
            b[0]=a[0];
            b[1]=0;
            j+=2;
        }
        if(a[i]<a[i+1]&&a[i+1]>a[i+2])
        {
            b[j]=a[i+1];
            b[j+1]=i+1;
            j+=2;
        }
    }
    printf("%f\r\n",b[10]);
}

出来的结果会出现
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2017-12-24 11:14编辑过]

搜索更多相关主题的帖子: 输出 出现 int for printf 
2017-12-24 11:12
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:4 
int a[10]={2,6,7,9,10,30,4,20,30,0},b[6];
printf("%f\r\n",b[10]);

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-12-24 11:20
青少年世代
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-12-8
收藏
得分:0 
回复 2楼 renkejun1942
改了类型和里面的参数,还是出现失败,编译的时候没有报错的
2017-12-24 11:29
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10552
专家分:42996
注 册:2014-5-20
收藏
得分:4 
观察一下 j 有无过界
2017-12-24 12:14
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
收藏
得分:4 
野数组+数组越界
2017-12-24 14:05
青少年世代
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-12-8
收藏
得分:0 
回复 4楼 吹水佬
越界的数组我要怎么改呢?最后的J值的确比输出的数组大了。
2017-12-24 14:33
青少年世代
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-12-8
收藏
得分:0 
回复 5楼 虫眼
我怕J越界,加上一个返回值,到>9的时候,返回到J也还是不行。
程序代码:
#include<stdio.h>
int main()
{
    int a[20]={2,6,7,9,10,30,4,20,30,10,10,20,80,50,23,60,0,18,19,20},b[10];
    int i,j,n=10;
    for(i=0;i<n-2;i++)
    {
        if(a[1]<a[0])
        {
            b[0]=a[0];
            b[1]=0;
            j+=2;
        }
        if(a[i]<a[i+1]&&a[i+1]>a[i+2])
        {
            b[j]=a[i+1];
            b[j+1]=i+1;
            j+=2;
            if(j>9)
            {
                return j;
            }
        }
    }
    printf("%d\n",b[6]);
}
2017-12-24 14:35
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10552
专家分:42996
注 册:2014-5-20
收藏
得分:0 
还没看明想要的结果。
看数组有相同值,最大值、次大值和第三大的数值是什么意思?
如数组:2 3 2 3 2 3 2 3 最大值、次大值和第三大的数值分别是什么?
2017-12-24 14:43
青少年世代
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-12-8
收藏
得分:0 
回复 8楼 吹水佬
就算对一段较长的数组,我按照上面那种方式给予赋值,将最大值,次大值,第三大的数值,给采样出来,赋值到0,2,4,6,8,其位置对应赋值到1,3,5,7,9这样子,数据上不会有相同的最大值,次大值,第三大等等的值,因为想从一个浮点数组内抽出来。。。
2017-12-24 16:01
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10552
专家分:42996
注 册:2014-5-20
收藏
得分:0 
回复 9楼 青少年世代
1、int i,j,n=10; 这时 j 未定义,随后 j+=2 就不确定了。
2、降序只排出前3个就可以吧。
2017-12-24 19:40
快速回复:请问下,为什么我这段程序输出会出现问题呢?
数据加载中...
 
   



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

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