| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 683 人关注过本帖
标题:实在是想不出来为什么了,求解!!!!
只看楼主 加入收藏
hutianlun
Rank: 2
等 级:论坛游民
帖 子:21
专家分:13
注 册:2013-3-28
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:4 
实在是想不出来为什么了,求解!!!!
程序代码:
#include <stdio.h>
#include <stdlib.h>
void printf_lxheshu(char lx,char shu);
void zhuanhuanhanshu_i(int lxz,long zhuanhuan,long zhuanhuanhou);
void zhuanhuanhanshu_f(int lxz,long zhuanhuan,long zhuanhuanhou);
void yichu_i(long zhuanhuan,long zhuanhuanhou);
void yichu_f(long double zhuanhuan,long double zhuanhuanhou);
int main (void)
{
unsigned char lx[40],shu[40];
    int lxz;
    printf("请输入你要求的类型(有short,int,long,float,double,longdouble):\n");
    scanf("%s",lx);
   printf("请输入你要求的数\n");
        scanf("%s",shu);
    printf("您输入的数的类型是%s,",lx);
    printf("您输入的数是%s,",shu);
lxz =(int)lx[0]+(int)lx[1]+(int)lx[2]+(int)lx[3]+(int)lx[4]+(int)lx[5];
if(atof(shu)!=atol(shu))
{  
    long double zhuanhuan,zhuanhuanhou;
    zhuanhuan = atof(shu);
  zhuanhuanhanshu_f(lxz,zhuanhuan,zhuanhuanhou);

 
   yichu_f(zhuanhuan,zhuanhuanhou);
    
}


if(atof(shu)==atol(shu))
{    
    long zhuanhuan,zhuanhuanhou;
    zhuanhuan = atol(shu); 
zhuanhuanhanshu_i(lxz,zhuanhuan,zhuanhuanhou);

     yichu_i(zhuanhuan,zhuanhuanhou);
      
}

}




void zhuanhuanhanshu_i(int lxz,long zhuanhuan ,long zhuanhuanhou)
{
    if (lxz==560)
   zhuanhuanhou=(short)zhuanhuan;
     if (lxz==739)
   zhuanhuanhou=(int)zhuanhuan;
        if (lxz==651)
    zhuanhuanhou=(long)zhuanhuan;
}


void zhuanhuanhanshu_f(int lxz,long zhuanhuan, long zhuanhuanhou)
{    if (lxz==643)

 zhuanhuanhou=(long double)zhuanhuan;
    if (lxz==635)
zhuanhuanhou=(double)zhuanhuan;
if (lxz==534)
zhuanhuanhou=(float)zhuanhuan;

}

void yichu_i(long zhuanhuan,long zhuanhuanhou)
{   
  if(zhuanhuan==zhuanhuanhou)
      printf("未溢出");
  if(zhuanhuan!=zhuanhuanhou)
     printf("溢出,转换后的数为%d",zhuanhuanhou);
}


 void yichu_f(long double zhuanhuan,long double zhuanhuanhou)
{   
  if( zhuanhuan==zhuanhuanhou)
      printf("未溢出");
  if (zhuanhuan!=zhuanhuanhou)
      printf("溢出,得到数为%f",zhuanhuanhou);

 }


 zhuanhuanhou=(short)zhuanhuan;
     if (lxz==739)
printf("%d",zhuanhuanhou);
   zhuanhuanhou=(int)zhuanhuan;
        if (lxz==651)
    zhuanhuanhou=(long)zhuanhuan;  在这里加printf函数,显示 zhuanhuanhou 的值为3,是正常的

    long zhuanhuan,zhuanhuanhou;
    zhuanhuan = atol(shu);
zhuanhuanhanshu_i(lxz,zhuanhuan,zhuanhuanhou);
 printf("%d",zhuanhuanhou);
     yichu_i(zhuanhuan,zhuanhuanhou);      在这里加printf函数就变成-858993460

我实在是想不通为什么在自定义的函数里 是对的,一出来就错了呢,郁闷死了,求大神教我啊~~~~~~~~~~~~~~~
30分啊~~~我的全部积蓄了,来人拿啊

[ 本帖最后由 hutianlun 于 2013-7-13 03:49 编辑 ]
搜索更多相关主题的帖子: color 
2013-07-13 03:48
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:7 
建议你先用vs2012这个软件来调试一下,因为在代码窗口,如果你的代码出现了一些明显错误,它会以波浪线的形式提示你的

思考赐予新生,时间在于定义
2013-07-13 08:38
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:7 
眼好花 ,全部都是zhuanhuan**

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-07-13 08:48
qq525273446
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:54
专家分:161
注 册:2009-11-18
收藏
得分:8 
函数都是值传递  主函数中的zhuanhuan  zhanhuanhou  变量的值都没变   改成指针传递运行下吧

找工作中……
2013-07-13 10:41
xieyajiang
Rank: 2
等 级:论坛游民
帖 子:24
专家分:65
注 册:2011-12-8
收藏
得分:8 
实参将值赋给形参,单形参不会改变实参的值。
也就是说你转换类型函数里面的值并不会影响主函数的值,
改成指针类型,直接对地址里面的值进行更改就行
2013-07-13 14:20
快速回复:实在是想不出来为什么了,求解!!!!
数据加载中...
 
   



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

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