| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 796 人关注过本帖
标题:printf()函数中变量除以常量非法,虚心请教
只看楼主 加入收藏
詩蘭靜宵
Rank: 2
来 自:葫 芦 岛
等 级:论坛游民
帖 子:65
专家分:50
注 册:2013-2-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:18 
printf()函数中变量除以常量非法,虚心请教
            printf("%d分钟= %d小时%d分",min,min/60,min%60);
            printf("%d分钟= %d小时%d分",min,min/a,min&a);  //变量a=60
            printf("%d分钟= %d小时%d分",min,min/TIME,min&TIME);  //常量TIME=60


为什么输出语句那里“min/TIME”是非法的呢

刚开始自学C,其实这个...问不问也没什么,多加1,2条语句也就是
就是很好奇,为什么除以变量和立即数可以。常量就不行。
真心求教,大牛幸福。
搜索更多相关主题的帖子: 函数 
2013-02-17 16:20
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:20 
程序代码:
#include <stdio.h>

#define TIME 60

int main(void)
{
   
    int min = 70;
    int a = 100;
   
    printf("%d分钟= %d小时%d分",min,min/60,min%60);
    printf("%d分钟= %d小时%d分",min,min/a,min&a);  //变量a=60
    printf("%d分钟= %d小时%d分",min,min/TIME,min&TIME);  //常量TIME=60
   
    return 0;
}


不知道你的代码怎么写的 无代码 无真相
2013-02-17 16:23
詩蘭靜宵
Rank: 2
来 自:葫 芦 岛
等 级:论坛游民
帖 子:65
专家分:50
注 册:2013-2-16
收藏
得分:0 
以下是引用zklhp在2013-2-17 16:23:02的发言:


#include <stdio.h>

#define TIME 60

int main(void)
{
   
    int min = 70;
    int a = 100;
   
    printf("%d分钟= %d小时%d分",min,min/60,min%60);
    printf("%d分钟= %d小时%d分",min,min/a,min&a);  //变量a=60
    printf("%d分钟= %d小时%d分",min,min/TIME,min&TIME);  //常量TIME=60
   
    return 0;
}


不知道你的代码怎么写的 无代码 无真相


为咩你的代码贴上就不报错呢.. 我再回头看看去..
谢谢版版。

❀.新人一枚,多多指教!
2013-02-17 16:25
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用詩蘭靜宵在2013-2-17 16:25:45的发言:

 
 
为咩你的代码贴上就不报错呢.. 我再回头看看去..
谢谢版版。

那就是啦 你的代码咋写的 不贴出来 我们怎么知道 下次记得帖完整代码 记得把报的错误也贴了 这样别人帮你到时候能快点

祝你学习顺利
2013-02-17 16:27
詩蘭靜宵
Rank: 2
来 自:葫 芦 岛
等 级:论坛游民
帖 子:65
专家分:50
注 册:2013-2-16
收藏
得分:0 
以下是引用zklhp在2013-2-17 16:27:31的发言:


那就是啦 你的代码咋写的 不贴出来 我们怎么知道 下次记得帖完整代码 记得把报的错误也贴了 这样别人帮你到时候能快点

祝你学习顺利



程序代码:
#include <stdio.h>
#include <stdlib.h>
#define TIME 60;
int main (void)
{
    int min;
    int a=60;
    printf("请输入分钟数\n");
    while(scanf("%d",&min)>=0)
    {
        if(min=='\n')
            continue;

        else
            printf("%d分钟= %d小时%d分",min,min/60,min%60);
            printf("%d分钟= %d小时%d分",min,min/a,min&a);  //变量a=60
            printf("%d分钟= %d小时%d分",min,min/TIME,min&TIME);  //常量TIME=60

                                            
                        
    }
    
    

system("pause");
return 0;
}



我的代码.. 还在找错中.

❀.新人一枚,多多指教!
2013-02-17 16:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
衰手痕咯

授人以渔,不授人以鱼。
2013-02-17 16:32
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用詩蘭靜宵在2013-2-17 16:29:58的发言:

 
 
 
#include  
#include  
#define TIME 60;
int main (void)
{
    int min;
    int a=60;
    printf("请输入分钟数\n");
    while(scanf("%d",&min)>=0)
    {
        if(min=='\n')
            continue;
 
        else
            printf("%d分钟= %d小时%d分",min,min/60,min%60);
            printf("%d分钟= %d小时%d分",min,min/a,min&a);  //变量a=60
            printf("%d分钟= %d小时%d分",min,min/TIME,min&TIME);  //常量TIME=60
 
                                             
                        
    }
     
     
 
system("pause");
return 0;
}
 
 
 
我的代码.. 还在找错中.

#define TIME 60;

我给你帖一下你这个宏替换之后的代码你就明白了

printf("%d分钟= %d小时%d分",min,min/60;,min&60;); //常量TIME=60

宏替换之后变成这个了 你觉得可能没错么
2013-02-17 16:33
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
这个代码还有两个问题 一个是 逻辑关系对么 注意如果不加大括号else只管一行

再一个 代码风格有待提高 比如我稍微一改就变成这样了

程序代码:
#include <stdio.h>
#include <stdlib.h>

#define TIME 60

int main(void)
{
    int min;
    int a=60;
    printf("请输入分钟数\n");
    while(scanf("%d",&min)>=0)
    {
        if(min=='\n')
            continue;

        else
            printf("%d分钟= %d小时%d分",min,min/60,min%60);
        printf("%d分钟= %d小时%d分",min,min/a,min&a);  //变量a=60
        printf("%d分钟= %d小时%d分",min,min/TIME,min&TIME);  //常量TIME=60
    }
    system("pause");
    return 0;
}



好看么
2013-02-17 16:35
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用zklhp在2013-2-17 16:35:22的发言:

这个代码还有两个问题 一个是 逻辑关系对么 注意如果不加大括号else只管一行

再一个 代码风格有待提高 比如我稍微一改就变成这样了

 
#include  
#include  
 
#define TIME 60
 
int main(void)
{
    int min;
    int a=60;
    printf("请输入分钟数\n");
    while(scanf("%d",&min)>=0)
    {
        if(min=='\n')
            continue;
 
        else
            printf("%d分钟= %d小时%d分",min,min/60,min%60);
        printf("%d分钟= %d小时%d分",min,min/a,min&a);  //变量a=60
        printf("%d分钟= %d小时%d分",min,min/TIME,min&TIME);  //常量TIME=60
    }
    system("pause");
    return 0;
}
 


好看么

注意这里的缩进是根据语法来的 也就是说三个printf不在一个逻辑关系上。。
2013-02-17 16:36
詩蘭靜宵
Rank: 2
来 自:葫 芦 岛
等 级:论坛游民
帖 子:65
专家分:50
注 册:2013-2-16
收藏
得分:0 
以下是引用zklhp在2013-2-17 16:33:39的发言:


#define TIME 60;

我给你帖一下你这个宏替换之后的代码你就明白了

printf("%d分钟= %d小时%d分",min,min/60;,min&60;); //常量TIME=60

宏替换之后变成这个了 你觉得可能没错么


刚开始写代码,没怎么定义过常量.. 这是教训啊
谢谢前辈.

❀.新人一枚,多多指教!
2013-02-17 16:37
快速回复:printf()函数中变量除以常量非法,虚心请教
数据加载中...
 
   



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

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