| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 665 人关注过本帖
标题:编译无误,运行出错
只看楼主 加入收藏
a99875984
Rank: 2
等 级:论坛游民
帖 子:188
专家分:24
注 册:2012-2-11
结帖率:94.64%
收藏
已结贴  问题点数:20 回复次数:13 
编译无误,运行出错
程序代码:
#include <iostream>
#include<stdlib.h>
#include <iomanip>
using namespace std;


int main()
{
    int id[5];
    int china[5]={75,80,85,52,86};
    int math[5];
    int i,max=0,y,x;
    int j[8];
    int sum[5],sum1[5];
    for(i=0;i<5;i++)
    {
        cout<<"请输入学号"<<endl;
        cin>>id[i];
        cout<<"请输入数学成绩"<<endl;
        cin>>math[i];
    }
    for(i=0;i<5;i++)
    {
        sum[i]=china[i]+math[i];
        sum1[i]=sum[i]; //为了不改变sum数组的值,先将sum赋值给 sum1
    }
    for(i=0;i<5;i++) //将总成绩最大的数数组下标赋值到J数组,从而得到名次
    {
       
        for(y=0;y<5;y++)
        {
            if(max<sum1[y])
            {
                max=sum1[y];
                j[i]=y;
            }
        }
        x=j[i];
        sum1[x]=0;
    }
    cout<<"学号  语文  数学  总分  均分  名次"<<endl;
    for(i=0;i<5;i++)
    {
        y=j[i];
        cout<<id[y]<<setw(6)<<china[y]<<setw(6)<<math[y]<<setw(6)<<sum[y]<<setw(6)<<sum[y]/2<<setw(6)<<i+1<<endl;
    }
    return 0;
}
请问那出错了?编译没错误,运行时,输入10个数据后没输出结果
并且,有没有更好的算法。谢谢

[ 本帖最后由 a99875984 于 2012-11-7 23:00 编辑 ]
搜索更多相关主题的帖子: color 
2012-11-07 08:17
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:10 
好好检查下  数组的下标值
2012-11-07 08:37
qq872551969
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:1
帖 子:241
专家分:1377
注 册:2012-7-13
收藏
得分:1 
借鉴

编程交流请加群:【234181324】,一起学习,一起进步,新建的群,主打C语言和JAVA等程序设计,等待高手们的入驻,无论你是高手也好,新手也好,在这里都是平等的,欢迎你们的加入~!【234181324】
2012-11-07 09:04
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:2 
  for(i=0;i<5;i++)
    {
      
        for(y=0;y<5;y++)
        {
            if(max<sum1[y])
            {
                max=sum1[y];
                j[i]=y;//这是要做什么!不懂
            }
        }
        x=j[i];           //这是做什么的也不了解
        sum1[x]=0;      //这个我就更糊涂了
    }
2012-11-07 09:37
newdos
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:6
帖 子:251
专家分:1169
注 册:2012-8-13
收藏
得分:2 
鬼知道做什么用,神一样的代码,没有一句注释。
2012-11-07 11:12
a99875984
Rank: 2
等 级:论坛游民
帖 子:188
专家分:24
注 册:2012-2-11
收藏
得分:0 
回复 2楼 寒风中的细雨
不是数组下标,我将5改成8,还是不行
2012-11-07 22:57
a99875984
Rank: 2
等 级:论坛游民
帖 子:188
专家分:24
注 册:2012-2-11
收藏
得分:0 
回复 5楼 newdos
for(i=0;i<5;i++)
      {
         
         for(y=0;y<5;y++)
          {
              if(max<sum1[y])
              {
                  max=sum1[y];
                  j[i]=y;//将单前最大值的元素下标赋值给J数组以储存总分排名
              }
          }
          x=j[i];           //假设j[0]=5,说明数组下标为5的是排名第0+1位的。
          sum1[x]=0;      //第一次将最大值归零,从而求第二大的总分,以此类推
      }//表达能力差,不知道说没说明白

[ 本帖最后由 a99875984 于 2012-11-7 23:15 编辑 ]
2012-11-07 23:01
a99875984
Rank: 2
等 级:论坛游民
帖 子:188
专家分:24
注 册:2012-2-11
收藏
得分:0 
回复 4楼 小糊涂神c30
for(i=0;i<5;i++)
     {
        
        for(y=0;y<5;y++)
         {
             if(max<sum1[y])
             {
                 max=sum1[y];
                 j[i]=y;//将单前最大值的元素下标赋值给J数组以储存总分排名
             }
         }
         x=j[i];           //假设j[0]=5,说明数组下标为5的是排名第0+1位的。
         sum1[x]=0;      //第一次将最大值归零,从而求第二大的总分,以此类推
     }//表达能力差,不知道说没说明白
2012-11-07 23:07
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 8楼 a99875984
好好检查下标值,  怎么就那么自信呢?
2012-11-08 09:09
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
程序代码:
     for(i=0;i<5;i++) //将总成绩最大的数数组下标赋值到J数组,从而得到名次
     {
      
        for(y=0;y<5;y++)
         {
             if(max<sum1[y])
             {
                 max=sum1[y];
                 j[i]=y;
             }
         }
         x=j[i];
         sum1[x]=0;
     }                                                                                                                                                               

x = j[i]; 这句  如果上面的if条件不成立   j[i]的值是多少  x值是多少   sum1[x] 是不是访问越界?

上面有问题 下面用到j[i]的地方也是有问题的 
2012-11-08 09:12
快速回复:编译无误,运行出错
数据加载中...
 
   



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

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