广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 4344 个阅读者
 
<< 上页  1   2   3  >>(共 3 页)
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
唐老鸭
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x230
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

我直接用你的程式码来帮你改.....
晚点放上来给你....
因为有很多小错误要解释.....
所以干脆全部帮你改比较快.....
不过我只有VC6.0喔....
所以如果.NET不能执行我不保证喔 表情 .....


没东西可以抓
献花 x0 回到顶端 [20 楼] From:美国 | Posted:2005-04-04 06:00 |
唐老鸭
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x230
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

帮你改好了....
也测试过一遍了....
看起来应该没有问题.....
但是我没有加入同时有两个以上最高或最低分的情况...
若是你要这种情况....
则必须在程式里面多做一个回圈来做判断.....
也要修改一点点的程式码(maxaddress跟minaddress这两个变数就可以不要了)....
那边就给你练习啰表情 .....

这是程式码....
复制程式
#include <iostream>
using namespace std;

struct person  // 定义一个结构资料型态Student
{ 
       char name[100][10];
       char id[100][10];
       int score[100][3];

}student;


void main()
{       
       int number,i,j;
       int total=0;
       float average;
       int max;
       int min;
       int maxaddress=0;  //记录该科目分数最高的人的阵列位置
       int minaddress=0;  //记录该科目分数最低的人的阵列位置
       
       cout <<"Exercise 3"<<endl;       
       cout <<"Class : 二子三A   Name : 吴建锋   ID : D93232109 " << endl;
       cout <<"How many students in class: ";
       cin >> number;
        
       
       for( i=0 ; i<number; i++)
       {
              cout << "Name of student " << i+1 << ": ";//输入姓名
              cin >> student.name[i];
              cout << "Id of student "<< i+1 <<": "; //输入ID
              cin >> student.id[i];
              
              for( j=0 ; j<3 ; j++)
              {
                     cout << "Score " << j+1 << " of student "<< i+1 <<": "; //输入科目的成绩
                     cin >> student.score[i][j];
              }
       }
       
       cout << "\nName\tID\tScore1\tScore2\tScore3\taverage\n";       //输出成绩表
       for( i=0 ; i<number ; i++)
       {
              cout<<student.name[i]<<"\t"<<student.id[i]<<"\t";
             for( j=0; j<3 ; j++)
              {
                     cout<<student.score[i][j]<<"\t";
                     total+=student.score[i][j];
              }
              average=total/3;
              total=0;
              cout<< average <<endl;
       }
       cout<<endl;
           
       for( j=0 ; j<3 ; j++) //比较科目的最高分,低分
       {
              max = student.score[0][j];
              min = student.score[0][j];
              cout<<student.score[0][j]<<endl;
              maxaddress=0;
              minaddress=0;
       
              for( i=1 ; i<number ; i++)
              {
                     if (student.score[i][j]>max)
                     {
                            maxaddress = i;
                            max = student.score[i][j];
                     }
                     
                     if (student.score[i][j]<min)
                     {
                            minaddress = i;
                            min = student.score[i][j];
                     }
                     
              }
              
              cout <<"Course"<< j+1<< ":\n";
              cout <<"Highest Score:"<<endl;  //输出该科目的最高分
              cout <<"Name: "<<student.name[maxaddress]<<"\t";
              cout <<"Id: "<<student.id[maxaddress]<<"\t";
              cout <<"Score: "<<student.score[maxaddress][j]<<endl;

        cout <<"Lowest Score:"<<endl;  //输出该科目的最低分
              cout <<"Name: "<<student.name[minaddress]<<"\t";
              cout <<"Id: "<<student.id[minaddress]<<"\t";
              cout <<"Score: "<<student.score[minaddress][j]<<endl;

              cout <<"Fail List:"<<endl;  
              
              for( i=0 ; i<number ; i++) //印出该科不及格的人
              {
                     if(student.score[i][j]<60)
                     {
                            cout <<"Name: "<<student.name[i]<<"\t";
                            cout <<"Id: "<<student.id[i]<<"\t";
                            cout <<"Score: "<<student.score[i][j]<<endl;
                     }
              }
              
              cout <<endl;
       }
              
    system("pause");
}


记得把< i >改成 [ i ] 喔.....


[ 此文章被唐老鸭在2005-04-04 08:18重新编辑 ]

此文章被评分,最近评分记录
财富:25 (by panasonic732) | 理由: 辛苦了...
支持度:10 (by panasonic732) | 理由: 特别奖励 ^^


没东西可以抓
献花 x1 回到顶端 [21 楼] From:美国 | Posted:2005-04-04 08:13 |
jianfengtw
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x3
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

昨天半夜睡觉时
我也突然想到
我的程式这边逻辑不对
复制程式
for( j=0 ; j<3 ;j++) //比较科目的最高分,低分
       { 
              for( i=0 ; i<n ; i++)
              {
              [color=crimson]big = small =student.score[i][j][0];
              if(student.score[i+1][j][0]>big)
              max=i+1;
              if(student.score[i+1][j][0]<small)
              min=i+1;[/color]
              }


要改成像这样
复制程式
 for( i=1 ; i<n ; i++)
              {
                     if(student.score[i][j][0]>max)
                     {              
                            maxaddress=i;
                            max=student.score[i][j][0];
                            cout<<max<<endl;
                     }
                     if(student.score[i][j][0]<min)
                     {                                   
                            minaddress=i;
                            min=student.score[i][j][0];
                            cout<<min<<endl;
                     }
没想到大大也看出我这边比大小的地方有写错
经过早上修改之后
已经可以执行了
谢谢大大的帮忙
感激不尽 表情 表情


献花 x0 回到顶端 [22 楼] From:台湾台湾索尼 | Posted:2005-04-04 13:06 |
jianfengtw
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x3
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

再次请教唐大大
如果我要把

struct person {char name[100][10];// 定义一个结构资料型态Student
        char id[100][10];                      
        int score[100][3][2];
        float average[100];
        }student ;


改成用new 的指令的话
要怎么改
因为它好像没办法弄成二维阵列以上的宣告
因为我不想每个科目都开一个阵列
<因为下一个作业就是要改成 new 来写>
这样要写很长

static char *name =new char[n];
      char *id =new char[n];                      
      int *score=new int[n][3][2];
      float *average=new float[n];
还有为什么要用static作为开头
而不是struct

为什么我会有此一问呢
因为我翻了四,五本书
对于new的介绍都很少
有范例但都是用一维阵列

还有那要怎样才能用结构跟new 结合为一

至于输出同分的
我是用二个for下去写是ok的
还有更好的方法吗

for( j=0 ; j<3 ;j++) //比较科目的最高分,低分
    {
        max =student.score[0][j][0];
        min =student.score[0][j][0];
        for( i=1 ; i<n ; i++)
        {
              if(student.score[j][0]>max)
              {        
                  max=student.score[j][0];
              }
              if(student.score[j][0]<min)
              {                      
                  min=student.score[j][0];
              }
             
        }
        cout <<"\nCourse"<< j+1<< ":\n"<<"Highest Score:\n";//输出科目的最高分
        for( i=0 ; i<n ; i++ )
        {
              if(max==student.score[j][0])
              {
                  cout <<"Name:"<<"\t"<<student.name<<"\t";
                  cout <<"Id:"<<"\t"<<student.id<<"\t";
                  cout <<"Score"<<j+1<<":\t"<<student.score[j][0]<<endl;
              }
        }
        cout <<"Lowest Score:\n";//输出科目的最低分
        for( i=0 ; i<n ; i++ )
        {
              if(min==student.score[j][0])               {
                  cout <<"Name:"<<"\t"<<student.name<<"\t";
                  cout <<"Id:"<<"\t"<<student.id<<"\t";
                  cout <<"Score"<<j+1<<":\t"<<student.score[j][0]<<endl;
              }
        }
    }
感谢大大的回覆教学
让小生我学了不少


[ 此文章被jianfengtw在2005-04-06 16:07重新编辑 ]


献花 x0 回到顶端 [23 楼] From:台湾台湾索尼 | Posted:2005-04-06 15:58 |
唐老鸭
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x230
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用jianfengtw于2005-04-6 15:58发表的 :
再次请教唐大大
如果我要把

static char *name =new char[n];
    char *id =new char[n];              
    int *score=new int[n][3][2];
    float *average=new float[n];                      
.......

你这边的写法不太对吧.....
你确定你这样写可以执行ㄇ 表情 ....
若你要用new宣告一个二维的阵列....
应该要这样写才对吧int (*p)[3] = new int[5][3];
三维就像这样int (*score)[3][2]=new int[100][3][2];.....
static只是用在宣告该变数的生命期.....
跟你上面提的结构一点关系也没有.....


没东西可以抓
献花 x0 回到顶端 [24 楼] From:美国 | Posted:2005-04-06 16:53 |
唐老鸭
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x230
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

至于你说后面程式的程式的写法.....
如果你没在宣告新增其他变数的情况下.....
还有你题目的要求下....
我能想到的也只有用两个回圈去判断了阿....
你的写法跟我要你改的写法是一样的.....
除非你多此一举把她弄成一个FUNCTION....
这样可以少一个表情 .....
不过实在没什么必要 表情 .....


没东西可以抓
献花 x0 回到顶端 [25 楼] From:美国 | Posted:2005-04-06 17:03 |
jianfengtw
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x3
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

再次感谢大大的开释
我已经改好了

不知道我要何年何月
才有大大的程式的功力

谢谢大大的教导
表情 表情


献花 x1 回到顶端 [26 楼] From:台湾台湾索尼 | Posted:2005-04-06 17:14 |
jianfengtw
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x3
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

唐大大
那宣告成这样之后
static char (*name)[10] = new char[n][10];// 定义一个结构资料型态Student
          char (*id)[10] = new char[n][10];
          int (*score)[3][2] = new int[n][3][2];
          float *average = new float[n];

那我要释放记忆体是不是只要下
delete *name,*id..........
照一维的阵列就会释放了

因为我刚用
delete (*name)[10],(*score)[3][2]
编译就不行

唐大大!!!
请原谅愚昧无知的我
问这么多的问题
会天打雷劈~~ 表情


献花 x0 回到顶端 [27 楼] From:台湾台湾索尼 | Posted:2005-04-06 17:34 |
唐老鸭
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x230
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用jianfengtw于2005-04-6 17:34发表的 :
static char (*name)[10] = new char[n][10];// 定义一个结构资料型态Student
      char (*id)[10] = new char[n][10];
      int (*score)[3][2] = new int[n][3][2];
      float *average = new float[n];

那我要释放记忆体是不是只要下
delete *name,*id..........
照一维的阵列就会释放了

因为我刚用
delete (*name)[10],(*score)[3][2]
编译就不行
.......
你这样写写看.....
把她分成两行....
delete [] name;
delete [] score;

不过我很好奇你们老师的要求是什么.....
我平常写程式很少会用阵列指标....
如果像这样的题目....
我都会用串列的结构来写.....
因为这样写我也常常会写错 表情.....


没东西可以抓
献花 x0 回到顶端 [28 楼] From:美国 | Posted:2005-04-06 17:53 |
jianfengtw
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x3
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

谢谢大大的指导

可能让我们熟指令如何使用吧

串列的结构二专曾经有上过
但从来没用过
那时老师教的不太好,有听没懂

等有空再来改改看用串列的结构


献花 x0 回到顶端 [29 楼] From:台湾台湾索尼 | Posted:2005-04-07 00:35 |

<< 上页  1   2   3  >>(共 3 页)
首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.107482 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言