| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3724 人关注过本帖
标题:【求教】假设除数是0值,怎么办?
取消只看楼主 加入收藏
宇宙规律
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:232
专家分:128
注 册:2014-5-7
结帖率:97.06%
收藏
已结贴  问题点数:20 回复次数:6 
【求教】假设除数是0值,怎么办?
#include<stdio.h>        
#include<stdlib.h>        
        
float commp(const void *a, const void *b)        
{        
return *(float *)a > *(float *)b ? 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[1][7]={2  ,5  ,11 ,12 ,13 ,14 ,16 },j;
        
    float    a[2][2]={{(c[i[0][2]]-c[i[0][1]]-c[i[0][0]])/(i[0][2]-i[0][1]-i[0][0]),i[0][2]-i[0][1]-i[0][0]},{(c[i[0][3]]-c[i[0][2]]-c[i[0][1]])/(i[0][3]-i[0][2]-i[0][1]),(i[0][3]-i[0][2]-i[0][1])}};
     

    qsort(a, sizeof(a)/sizeof(float)/2, 2*sizeof(float ),commp);   
        
 for(j = 0; j < sizeof(a)/sizeof(float )/2; j++)        
 {        
if(a[j][1] != 0)        
{        
printf("%f\n", a[j][0]);    printf("%f\n%f\n%f\n%f\n", a[0][0], a[0][1], a[1][0], a[1][1]);   
        
printf("%f\n", (float)a[0][1]/a[0][0]);        
        
printf("\n");        
break;        
}        
 }
        
 return 0;        
        
}        


3.000000
3.000000
4.000000
3.000000
-4.000000
1.333333

Press any key to continue


a[0][0]=(c[i[0][2]]-c[i[0][1]]-c[i[0][0]])/(i[0][2]-i[0][1]-i[0][0]);

如果(i[0][2]-i[0][1]-i[0][0])=0,程序停止工作,怎么办?
2017-01-28 17:21
宇宙规律
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:232
专家分:128
注 册:2014-5-7
收藏
得分:0 
祝各位C新年快乐!

[此贴子已经被作者于2017-1-29 12:02编辑过]

2017-01-28 19:46
宇宙规律
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:232
专家分:128
注 册:2014-5-7
收藏
得分:0 
祝各位C新年快乐!

[此贴子已经被作者于2017-1-29 12:35编辑过]

2017-01-28 23:54
宇宙规律
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:232
专家分:128
注 册:2014-5-7
收藏
得分:0 
祝各位C新年快乐!

[此贴子已经被作者于2017-1-29 12:00编辑过]

2017-01-29 11:47
宇宙规律
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:232
专家分:128
注 册:2014-5-7
收藏
得分:0 
看来,除数是0,用如下方法靠谱点,

m1,n1,m2,n2,m3,n3......m,n;
如果n1!=0,输出F1=m1/n1;
如果n1=0,输出F1=100000;

如果n2!=0,输出F1=m1/n1;
如果n2=0,输出F1=100000;

如果n3!=0,输出F1=m1/n1;
如果n3=0,输出F1=100000;

然后,排序F1,F2,F3,找到最小值;


[此贴子已经被作者于2017-1-30 19:12编辑过]

2017-01-29 21:35
宇宙规律
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:232
专家分:128
注 册:2014-5-7
收藏
得分:0 
#include<stdio.h>                                    
#include<stdlib.h>                                
int commp(const void *a, const void *b)                        
{                                       
return *(int *)a > *(int *)b ? 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[1][7]={2  ,5  ,11 ,12 ,13 ,14 ,16 },j,k,               
a[9][2]={1,2,5,3,0,1,-3,7,-8,0,5,7,3,0,6,7,8,0};            
                                    
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", a[j][0]);    printf("%d\n%d\n%d\n%d\n", a[j][0], a[j][1], a[j+1][0], a[j+1][1]);        
printf("%f\n", (float)a[j][1]/a[j][0]);                        
printf("\n");                                    
break;                                       
}                                       
 }                                       
 return 0;                                    
}                                       

 -3
  -3
  7
  0
  1
  -2.33333
  
  Press any
  key to continue
 
2017-01-31 22:02
宇宙规律
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:232
专家分:128
注 册:2014-5-7
收藏
得分:0 
break;  是关键,不可缺失;
2017-02-24 14:26
快速回复:【求教】假设除数是0值,怎么办?
数据加载中...
 
   



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

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