标题:小白一名,自己找不出来,谁帮我看一下哪有错误?
只看楼主
yl1572415729
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-8-4
结帖率:50%
已结贴  问题点数:20 回复次数:6 
小白一名,自己找不出来,谁帮我看一下哪有错误?
#include<stdio.h>
#define N 40;
int ReadScore(int score[]);
void DataSort(int score],int n);
void PrintScore(int score[],int n);
int main()
{
    int n,score[N];
    n=ReadScore(score);
    printf("total students are:%d\n",n);
    DataSort(score[],n);
    printf("sorted scores:");
    PrintfScore(score,n);
    return 0;
}
int ReadScore(int score[])
{
    int i=-1;
    do{
        i++;
        printf("input score:");
        scanf("%d",&score[i]);
    }while(score[i]>=0);
    return i;
}
void DataSort(int score[],int n)
int i,j,temp;
{
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(score[j]>score[i])
            {
                temp=score[j];
                score[j]=score[i];
                score[i]=temp;
            }
        }
    }
}
void PrintScore(int score[],int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("%4d",score[i]);
    }
    printf("\n");
}
搜索更多相关主题的帖子: 错误 int score void printf 
2017-08-04 21:12
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:705
专家分:2043
注 册:2010-11-11
得分:10 
程序代码:
#include<stdio.h>
#define N 40
int ReadScore(int score[]);
void DataSort(int score[],int n);
void PrintScore(int score[],int n);
int main()
{
    int n,score[N];
    n=ReadScore(score);
    printf("total students are:%d\n",n);
    DataSort(score,n);
    printf("sorted scores:");
    PrintScore(score,n);
    return 0;
}
int ReadScore(int score[])
{
    int i=-1;
    do{
        i++;
        printf("input score:");
        scanf("%d",&score[i]);
    }while(score[i]>=0);
    return i;
}
void DataSort(int score[],int n)
{
    int i,j,temp;
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(score[j]>score[i])
            {
                temp=score[j];
                score[j]=score[i];
                score[i]=temp;
            }
        }
    }
}
void PrintScore(int score[],int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("%4d",score[i]);
    }
    printf("\n");
}
2017-08-04 21:49
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:705
专家分:2043
注 册:2010-11-11
得分:0 
没看你的程序逻辑,只是编译通过了。如果这个代码是书上的例子,这本书可以直接扔了。
2017-08-04 21:50
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:10 
#include<stdio.h>
#define N 40
int ReadScore(int score[]);
void DataSort(int score[],int n);
void PrintScore(int score[],int n);
int main()
{
    int n, score[N];
    n=ReadScore(score);
    printf("total students are:%d\n",n);
    DataSort(score,n);
    printf("sorted scores:");
    PrintScore(score,n);
    return 0;
}
int ReadScore(int score[])
{
    int i=-1;
    do{
        i++;
        printf("input score:");
        scanf("%d",&score[i]);
    }while(score[i]>=0);
    return i;
}
void DataSort(int score[],int n)
{
    int i,j,temp;
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(score[j]>score[i])
            {
                temp=score[j];
                score[j]=score[i];
                score[i]=temp;
            }
        }
    }
}
void PrintScore(int score[],int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("%4d",score[i]);
    }
    printf("\n");
}
//那么多报错给得明明白白的,这全是按照编译信息改的。自己多看看编译信息吧。
2017-08-05 12:00
yl1572415729
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-8-4
得分:0 
回复 3楼 八画小子
谢谢
2017-08-05 17:13
yl1572415729
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-8-4
得分:0 
回复 4楼 yangfrancis
谢谢
2017-08-05 17:13
mqh462692
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-8-10
得分:0 
int ReadScore(int score[])
{
    int i=-1;
    do{
        i++;
        printf("input score:");
        scanf("%d",&score[i]);
    }while(score[i]>=0);
    return i;
}//
1:循环判断条件有误,没有判断当前输入的个数,有可能造成数组越界,
2:还有当输入小于零的参数结束循环时,本用于结束循环的小于零的参数存入比较数组
3:函数返回值原意是输入参数的个数,实际返回却比实际输入个数小一,例如只有一个输入时,返回值为零
最后,你代码如果真是书上的例子,这书真的可以扔了
修改后:
int ReadScore(int score[])
{
    int i=0;
    int x;
    while(i<N)
    {
        printf("input score:");
        scanf("%d",&x);
        if(x == -1)
        {
            break;
        }
        score[i] = x;
        i++;
    }
    return i;
}
2017-08-10 11:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-479793-1-1.html




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

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