| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 371 人关注过本帖
标题:这两个程序没什么不同,为什么一个运行结果正确,一个错误呢?请指教
只看楼主 加入收藏
whibla
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2012-8-1
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:3 
这两个程序没什么不同,为什么一个运行结果正确,一个错误呢?请指教

#include<stdio.h>
int main()
{
    int m, n, i, line[104], s, j, h;
    int aver1, aver2;
    while( scanf( "%d%d",&m,&n ) != EOF )
    {

        line[0] = 2;
        for( i = 1; i < n; i++ )
            line[i] = line[i-1] + 2;
        h = n % m;
        for( j = 0; j < n / m; j++ )
        {
             s = 0;
             for( i = j * m; i < ( j + 1) * m; i++ )
                 s = s + line[i];
             aver1 = s / m;
             if( j == 0 )
                printf( "%d",aver1);
             else
             printf( " %d", aver1);

        }
        if( h != 0)
        {
            s = 0;
            for( i = n - h; i < n ; i++ )
            s = s + line[i];
            aver2 = s / h;
            printf( " %d",aver2 );
        }
        printf( "\n");
    }
    return 0;

}
_____________________________________________________________________________________________________________________
#include<stdio.h>
int main()
{
    int m,n,i,line[104],s,j,h;
    int aver1,aver2;
    while( scanf( "%d%d",&n,&m ) != EOF )
    {
        line[0]=2;
        for( i = 1; i < n; i++ )
            line[i]=line[i-1]+2;
        h = n % m;//这是什么
        for( j = 0; j < n / m; j++ )//为什么要是n/m
        {
            s = 0;
            for( i = j * m; i < (j+1) * m; i++ )//好复杂,没看懂
                s = line[i] + s;
            aver1 = s / m;
            if( j == 0 )
                printf( "%d",aver1 );
            else printf( " %d",aver1 );
        }
        if( h != 0 )
        {
            s = 0;
            for( i = n - h; i < n;i++ )
                s = s + line[i];
            aver2 = s / h;
            printf( " %d",aver2 );
        }
        printf( "\n" );
    }
    return 0;
}
搜索更多相关主题的帖子: include 
2012-08-03 14:48
silent_world
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:258
专家分:1138
注 册:2011-9-24
收藏
得分:7 
呵呵,靠调试应该就可以看出来。
两个输入变量反了
while( scanf( "%d%d",&m,&n ) != EOF )
while( scanf( "%d%d",&n,&m ) != EOF )

2012-08-03 15:14
whibla
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2012-8-1
收藏
得分:0 
谢谢指教,还有一个问题,为什么先输入m和先输入n的结果不一样呢
2012-08-03 16:20
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:3 
原理都一样 程序也没问题 对应每对n m, 输出的结果是正确的。

梅尚程荀
马谭杨奚







                                                       
2012-08-03 16:25
快速回复:这两个程序没什么不同,为什么一个运行结果正确,一个错误呢?请指教
数据加载中...
 
   



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

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