| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 831 人关注过本帖
标题:莫名的错误,求指点!
取消只看楼主 加入收藏
staythink
Rank: 2
等 级:论坛游民
帖 子:42
专家分:50
注 册:2010-7-26
收藏
 问题点数:0 回复次数:2 
莫名的错误,求指点!
程序代码:
#include<stdio.h>
#define ARR_SIZE 40
void FindMax(int *maxscore,char *maxnum,int score[],char num[],int n);
void main()
{
    int n,score[ARR_SIZE],i,maxscore;
    char num[ARR_SIZE],maxnum;
    printf("please input the total number:\n");
    scanf("%d",&n);
    printf("please input the number and score:\n");
    for(i=0;i<n;i++)
    {
        scanf("%s %d",num,score);
    }
    FindMax(&maxscore,&maxnum,score,num,n);
    printf("该班上分数最高的学生学号为:%s\n",maxnum);
    printf("该班上分数最高的学生成绩为:%d\n",maxscore);

}

void FindMax(int *maxscore,char *maxnum,int score[],char num[],int n)
{
    int i;
    *maxscore=score[0];
    *maxnum=num[0];
    for(i=1;i<n;i++)
    {
        if(score[i]>*maxscore)
        {
            *maxscore=score[i];
            *maxnum=num[i];
        }
    }
}
这个代码主要是想实现这个功能:从键盘输入一个班学生一门课的成绩,用函数编程实现打印最高分及其学号。
输入:
E08620207 88
E08620208 90
E08620209 77
搜索更多相关主题的帖子: color 
2010-07-29 16:57
staythink
Rank: 2
等 级:论坛游民
帖 子:42
专家分:50
注 册:2010-7-26
收藏
得分:0 
回复 3楼 Rexfield
兄台,这个。。。我得仔细看看,malloc()我是第一次看过。。。刚学C语言不久

be a progammer,instead of a coder~
2010-07-29 23:33
staythink
Rank: 2
等 级:论坛游民
帖 子:42
专家分:50
注 册:2010-7-26
收藏
得分:0 
回复 7楼 mujiaha
我还有一个疑问,原题中的学号是用数字表示的。。。我只是想改成我们常用的学号形式,就是字母+学号。。。
原来的代码中只是改了少部分,就可以实现的啊。。
代码如下:
#include<stdio.h>
#define ARR_SIZE 40
void FindMax(int *maxscore,long *maxnum,int score[],long num[],int n);
void main()
{
    int n,score[ARR_SIZE],i,maxscore;
    long num[ARR_SIZE],maxnum;
    printf("plealde input the total number:\n");
    scanf("%d",&n);
    printf("plealde input the number and score:\n");
    for(i=0;i<n;i++)
    {
        scanf("%ld %d",&num[i],&score[i]);
    }
    FindMax(&maxscore,&maxnum,score,num,n);
    printf("该班上分数最高的学生学号为:%ld\n",maxnum);
    printf("该班上分数最高的学生成绩为:%d\n",maxscore);

}

void FindMax(int *maxscore,long *maxnum,int score[],long num[],int n)
{
    int i;
    *maxscore=score[0];
    *maxnum=num[0];
    for(i=1;i<n;i++)
    {
        if(score[i]>*maxscore)
        {
            *maxscore=score[i];
            *maxnum=num[i];
        }
    }
}
整段代码中改动的只有:
char---long;
%s---%ld;

就可以实现的。。。所以,我就不大明白了。。。字符串难道与单纯的数字差别很大?
图片附件: 游客没有浏览图片的权限,请 登录注册

be a progammer,instead of a coder~
2010-07-29 23:40
快速回复:莫名的错误,求指点!
数据加载中...
 
   



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

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