| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 690 人关注过本帖
标题:一个小程序 运行不了 请教高手 哪里有错误 谢谢
只看楼主 加入收藏
z1343509
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-1-2
收藏
 问题点数:0 回复次数:4 
一个小程序 运行不了 请教高手 哪里有错误 谢谢
#include<stdio.h>
#define nmax 100
typedef struct
{
int num;/*定义 num (学号)为整形 */
char name[nmax];/*定义name[nmax]为字符串 姓名 */
int escore;//英语成绩
int mscore;//数学成绩
int cscore;//计算机成绩
}student;
int ascore(student s)/*计算总分*/
{
int sum;
sum=s.cscore+s.escore+s.mscore;/*计算三课成绩总和*/
return sum;
}
void sort(student s[],int n)/*按总分排序*/
{
int max=0; /*初始化max,k*/
int k=0;
for(int j=0;j<n;j++) /*将总分最大值赋予max*/
{
max=ascore(s[j]);k=j;
for(int i=j+1;i<n;i++)
if(max<ascore(s[i]))
{
max=ascore(s[i]);k=i;
}
student temp;
if(k>j)
{  
temp=s[j];
s[j]=s[k];
s[k]=temp;
}
}

void printstudent(student s)/*输出函数*/
{
printf("%d %s %d %d %d %d",s.num,s.name,s.escore,s.mscore,s.cscore,ascore(s));
printf("\n");
}
void main()
{
student s[3];/*输出3个学生的学号 姓名 和三课成绩*/
for(int i=0;i<3;i++)
{
printf("输入学生的学号:\n");
scanf("%d",&s[i].num);
printf("输入学生的姓名:\n");
scanf("%s",s[i].name);
printf("输入学生的英语成绩:\n");
scanf("%d",&s[i].escore);
printf("输入学生的数学成绩:\n");
scanf("%d",&s[i].mscore);
printf("输入学生的计算机成绩:\n");
scanf("%d",&s[i].cscore);
}
sort(s,3); /*在这3个学生中输出总分最高同学的 学号 姓名和三课成绩*/
for(int i=0;i<3;i++)printstudent(s[i]);
}
搜索更多相关主题的帖子: max 计算 英语成绩 include return 
2008-01-02 16:18
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
收藏
得分:0 
sort 函数里花括号配对不正确

天之道,利而不害。圣人之道,为而不争。信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。
2008-01-02 17:03
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
#define nmax 100
typedef struct
{
        int num;/*定义 num (学号)为整形 */
        char name[nmax];/*定义name[nmax]为字符串 姓名 */
        int escore;//英语成绩
        int mscore;//数学成绩
        int cscore;//计算机成绩
}student;

int ascore(student s)/*计算总分*/
{
        int sum;
        sum=s.cscore+s.escore+s.mscore;/*计算三课成绩总和*/
        return sum;
}

void sort(student s[],int n)/*按总分排序*/
{
        int max=0; /*初始化max,k*/
        int k=0;
        for(int j=0;j<n;j++) /*将总分最大值赋予max*/
        {
                max=ascore(s[j]);k=j;
                for(int i=j+1;i<n;i++)
                        if(max<ascore(s[i]))
                        {
                                max=ascore(s[i]);k=i;
                        }
                student temp;
                if(k>j)
                {  
                        temp=s[j];
                        s[j]=s[k];
                        s[k]=temp;
                }
        }
}

void printstudent(student s)/*输出函数*/
{
        printf("%d %s %d %d %d %d",s.num,s.name,s.escore,s.mscore,s.cscore,ascore(s));
        printf("\n");
}

int main()
{
        student s[3];/*输出3个学生的学号 姓名 和三课成绩*/
        for(int i=0;i<3;i++)
        {
                printf("输入学生的学号:\n");
                scanf("%d",&s[i].num);
                printf("输入学生的姓名:\n");
                scanf("%s",s[i].name);
                printf("输入学生的英语成绩:\n");
                scanf("%d",&s[i].escore);
                printf("输入学生的数学成绩:\n");
                scanf("%d",&s[i].mscore);
                printf("输入学生的计算机成绩:\n");
                scanf("%d",&s[i].cscore);
        }
        sort(s,3); /*在这3个学生中输出总分最高同学的 学号 姓名和三课成绩*/
        for(int i=0;i<3;i++)printstudent(s[i]);
        system("pause");
        return 0;
}

天之道,利而不害。圣人之道,为而不争。信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。
2008-01-02 17:05
大白免
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2008-1-1
收藏
得分:0 
sort 函数里花括号配对不对
2008-01-02 18:30
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
我也奇怪呢,提示我函数不合法,呵呵,收获了
2008-01-02 20:07
快速回复:一个小程序 运行不了 请教高手 哪里有错误 谢谢
数据加载中...
 
   



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

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