| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1211 人关注过本帖
标题:【求教】程序错在哪了?-858993460?
取消只看楼主 加入收藏
宇宙规律
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:232
专家分:128
注 册:2014-5-7
结帖率:97.06%
收藏
 问题点数:0 回复次数:2 
【求教】程序错在哪了?-858993460?
#include<stdio.h>        
#include<stdlib.h>        
        
int commp(const void *a, const void *b)        
{        
return *(int *)b > *(int *)a ? 1 : -1;        
}        
main()        
{        
    int c[19]={7  ,8  ,9  ,14 ,16 ,18 ,20 ,21 ,25 ,33 ,34 ,41 ,46 ,47 ,52 ,56 ,60 ,61 ,62 },   
        
        i[2][7]={2  ,5  ,11 ,12 ,13 ,14 ,16 ,2  ,5  ,11 ,12 ,13 ,14 ,16},
        
        j,k,a[10][2];
        
    for(k=0;k<2;k++)
    {
    for(j=2;j<7;j++)   //所有条件赋值行为简化为一个循环解决   

        a[j-2][1]=i[k][j]-i[k][j-1]-i[k][j-2];

        if(i[k][j]-i[k][j-1]-i[k][j-2]!= 0)   
            a[j-2][0]=c[i[k][j]]-c[i[k][j-1]]-c[i[k][j-2]];
        else   
           a[j-2][0] =-1000;   
        
     }   
    qsort(a, sizeof(a)/sizeof(int)/2, 2*sizeof(int ),commp);   
        
 for(j = 0; j < sizeof(a)/sizeof(int )/2; j++)        
 {        
if(a[j][1] != 0)        
{        
printf("%d\n%d\n", a[0][0], a[0][1]);        
printf("\n");        
break;        
}               
 return 0;        
}
}

        
        
运算结果是:
-91
-858993460

Press any key to continue

[此贴子已经被作者于2017-2-9 14:15编辑过]

2017-02-09 13:52
宇宙规律
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:232
专家分:128
注 册:2014-5-7
收藏
得分:0 
找到错误原因了;a[10][2]应该是a[12][2];
#include<stdio.h>        
#include<stdlib.h>        
        
int commp(const void *a, const void *b)        
{        
return *(int *)b > *(int *)a ? 1 : -1;        
}        
main()        
{        
    int c[19]={7  ,8  ,9  ,14 ,16 ,18 ,20 ,21 ,25 ,33 ,34 ,41 ,46 ,47 ,52 ,56 ,60 ,61 ,62 },   
        
        i[2][7]={2  ,5  ,11 ,12 ,13 ,14 ,16 ,2  ,5  ,11 ,12 ,13 ,14 ,16},
        
        j,k,a[12][2];
        
    for(k=0;k<2;k++)
    {
    for(j=2;j<7;j++)   //所有条件赋值行为简化为一个循环解决   

        a[j-2][1]=i[k][j]-i[k][j-1]-i[k][j-2];

        if(i[k][j]-i[k][j-1]-i[k][j-2]!= 0)   
            a[j-2][0]=c[i[k][j]]-c[i[k][j-1]]-c[i[k][j-2]];
        else   
           a[j-2][0] =-1000;        
    qsort(a, sizeof(a)/sizeof(int)/2, 2*sizeof(int ),commp);   
    }   
 for(j = 0; j < sizeof(a)/sizeof(int )/2; j++)        
 {        
if(a[j][1] != 0)        
{        
printf("%d\n%d\n", a[0][0], a[0][1]);        
printf("\n");        
break;        
}               
 return 0;        
}
}


-91
-4

Press any key to continue        
        



[此贴子已经被作者于2017-2-9 14:34编辑过]

2017-02-09 14:19
宇宙规律
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:232
专家分:128
注 册:2014-5-7
收藏
得分:0 
//所有条件赋值行为简化为一个循环解决  
感谢版主xzlxzlxzl指教!
图片附件: 游客没有浏览图片的权限,请 登录注册
   


看来,二维数组,一维数组,都可以这样赋值循环计算;真是太好了;
2017-02-09 14:42
快速回复:【求教】程序错在哪了?-858993460?
数据加载中...
 
   



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

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