| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1317 人关注过本帖
标题:看看我这段代码,scanf以后就停住了
只看楼主 加入收藏
chinagdvea
Rank: 2
等 级:论坛游民
帖 子:38
专家分:10
注 册:2009-11-5
收藏
得分:0 
回复 10楼 pgy
额。。不需要。。谢谢。。我初学

It's not a joke
2009-11-07 13:04
雪鹰独行
Rank: 2
等 级:论坛游民
帖 子:40
专家分:10
注 册:2009-7-18
收藏
得分:0 
这是怎么个情况?谁能解释一下?俺也不会
2009-11-07 13:08
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:0 
回复 7楼 chinagdvea
scanf_s("%s",ch,10);
不管你在控制台输入多少个字符,最多只接受10个

我可好玩啦...不信你玩玩^_^
2009-11-07 13:19
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:0 
程序代码:
    while(num!=0)
    {
        if(num%2==0)
        {
            even++;
            even_sum+=num;
        }
        else 
        {
            odd++;
            odd_sum+=num;
        }
    }

LZ这循环打算什么时候退出啊??
LZ要的是这样的吧?
程序代码:
    while(num!=0)
    {
        if(num%2==0)
        {
            even++;
            even_sum+=num;
        }
        else 
        {
            odd++;
            odd_sum+=num;
        }
        num--;
    }
VC2005/2008还是支持scanf的,只是新加了scanf_s等函数,解决scanf()在读取时不检查边界,造成可能会造成内在泄露的问题,用scanf只是有一个警告,你可以不理的,不过既然你已经用着这样的编译器,就去了解下这几个新加的函数的用法吧···特别是输入字符串的时候···
2009-11-07 13:21
chinagdvea
Rank: 2
等 级:论坛游民
帖 子:38
专家分:10
注 册:2009-11-5
收藏
得分:0 
严重错误。。。实在不好意思

It's not a joke
2009-11-07 13:27
chinagdvea
Rank: 2
等 级:论坛游民
帖 子:38
专家分:10
注 册:2009-11-5
收藏
得分:0 
回复 14楼 lijm1989
其实是漏了一个 while里scanf

It's not a joke
2009-11-07 13:31
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:0 
以下是引用chinagdvea在2009-11-7 13:31:20的发言:

其实是漏了一个 while里scanf
            LZ能说明白点么??没能明白···
2009-11-07 13:33
chinagdvea
Rank: 2
等 级:论坛游民
帖 子:38
专家分:10
注 册:2009-11-5
收藏
得分:0 
回复 17楼 lijm1989
就是while里少了一个scanf。。。代码的红字部分。。。

It's not a joke
2009-11-07 13:37
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:0 
回复 18楼 chinagdvea
明白了··嘿嘿··刚没回1楼看···刚来的时候也没注意LZ的文字部分,误解LZ的意图了··唉··
2009-11-07 13:48
hnliji1107
Rank: 4
等 级:业余侠客
帖 子:53
专家分:216
注 册:2009-10-23
收藏
得分:0 
#include<stdio.h>
/* #define STOP '#' 多余 */
int main(void)
{
    int num,even=0,odd=0;
    float even_sum=0,odd_sum=0,even_aver,odd_aver;
    printf("Now enter some integers(press 0 to quit)\n");
    scanf("%d",&num);/* scanf_s("%d",&num) 在vc6.0中编译没错,但连接时出错*/
    while(num!=0)
    {
        if(num%2==0)
        {
            even++;
            even_sum+=num;
        }
        else
        {
            odd++;
            odd_sum+=num;
        }
     scanf("%d",&num);/* 你的源程序中这句末分号写错了 */
    }
    even_aver=even_sum/even;
    odd_aver=odd_sum/odd;
    printf("Evens are %d,and its average is %5.2f\n",even,even_aver);
    printf("Odds are %d,and its average is %5.2f\n",odd,odd_aver);
}
你的程序基本没问题,输入函数不能用scanf,可能是你用的编译软件的问题吧。
图片附件: 游客没有浏览图片的权限,请 登录注册
2009-11-07 14:07
快速回复:看看我这段代码,scanf以后就停住了
数据加载中...
 
   



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

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