| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2346 人关注过本帖
标题:这程序那里错误了,帮找找?
只看楼主 加入收藏
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
收藏
得分:0 
ALT 000   和48

墨一世红颜倾醉己    霁天谁与话风流

修仙``````````````````````````````````````````````
2011-07-31 23:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 60楼 风生钧起
那是小意思,最大的问题,这个时候跳过了第二个scanf()语句,它不起作用了!

授人以渔,不授人以鱼。
2011-07-31 23:25
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 61楼 风生钧起
Alt+000是0值,在C中是字符串的结束标志(也是NULL指针的值,NULL指针有一个值范围,在0到某个数之间),你这样输入,a的地址就到了程序内存的特殊位置(保护数据区,NULL指针的地址就在这个区域),那是由操作系统保护的,一旦发现任何程序往那个地方写数据,操作系统就接管,把这个程序驱逐出去。

[ 本帖最后由 TonyDeng 于 2011-7-31 23:36 编辑 ]

授人以渔,不授人以鱼。
2011-07-31 23:32
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
收藏
得分:0 
回复 62楼 TonyDeng
的确问题很大   受教了

墨一世红颜倾醉己    霁天谁与话风流

修仙``````````````````````````````````````````````
2011-07-31 23:32
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
收藏
得分:0 
回复 63楼 TonyDeng
这个懂

墨一世红颜倾醉己    霁天谁与话风流

修仙``````````````````````````````````````````````
2011-07-31 23:33
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
顺便说一下,assert()是一个宏,而且只有在编译时带DEBUG宏时才起作用(即#ifdef DEBUG)。我不知道有的人热衷于用这个是怎么回事,似乎意味着他写的程序都带调试信息,供用户使用时跟踪自己的代码一样。何况,自己调试时出现的问题是要求你在程序中消除的,不是提交使用出问题时吓用户的,release版本怎么可能容许出现这种界面!

授人以渔,不授人以鱼。
2011-07-31 23:47
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:0 
回复 58楼 TonyDeng
1,2 4


这种情况可以清下缓冲区后再让输入
程序代码:
void main()
{
    int a, b, c; 

    scanf("%d,%d", &a, &b);
    printf("a = %d, b = %d\n", a, b);
    fflush(stdin);
    scanf("%d", &c);
    printf("c = %d\n", c);
}


不过还是加些提示信息好些

[ 本帖最后由 icysky 于 2011-8-1 08:36 编辑 ]

不管怎么走、总有一个终点...
2011-08-01 08:35
b465513006
Rank: 2
等 级:论坛游民
威 望:1
帖 子:70
专家分:48
注 册:2011-3-18
收藏
得分:0 
可以这么写:
#include <stdio.h>
int main ()
{
   int max(int x,int y);
   int a,b,c;
   scanf("%d%d",&a,&b);
   c=max(a,b);
   printf("max=%d\n",c);
   return 0;}
int max(int x,int y)
{   
  if(x>y) return x ;
    else return y ;
}
2011-08-02 00:55
b465513006
Rank: 2
等 级:论坛游民
威 望:1
帖 子:70
专家分:48
注 册:2011-3-18
收藏
得分:0 
老兄,你输入的时候多了一个逗号,你输入的时候要加个逗号就对了
2011-08-02 00:58
yuaniao
Rank: 2
等 级:论坛游民
帖 子:19
专家分:44
注 册:2011-7-13
收藏
得分:0 
#include <stdio.h>     
                    
int max(int x,int y)
{   
    int z;           
    if(x>y)z=x;      
    else z=y;        
    return(z);      
}
int main ()            
{                     
   int a,b,c;           
   scanf("%d,%d",&a,&b);
   c=max(a,b);         
   printf("max=%d\n",c);
   return 0;
}
2011-08-02 14:54
快速回复:这程序那里错误了,帮找找?
数据加载中...
 
   



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

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