| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1278 人关注过本帖
标题:小白一名,自己找不出来,谁帮我看一下哪有错误?
只看楼主 加入收藏
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
帖 子:709
专家分:2063
注 册: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
帖 子:709
专家分:2063
注 册: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
快速回复:小白一名,自己找不出来,谁帮我看一下哪有错误?
数据加载中...
 
   



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

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