gsl9527 发表于 2020-5-20 13:02:25

得不到预期结果。建立信息表,包括学号、姓名、3门课程的成绩,编写程序,...

#include <stdio.h>
struct student
{int number;
char name;
int score;
float aver;
int rank;
}s;

int main()
{
        int i,j,t;
        float k;

        for(i=0;i<5;i++)
                        scanf("%ld%s%f%f%f",&s.number,s.name,&s.score,&s.score,&s.score);

        for(i=0;i<5;i++)                      //求平均成绩
        {for(j=0;j<3;j++)
                  k+=s.score;
                s.aver=k/3;
        }

        t=0;

        for(i=0;i<5;i++)                  //排名
        {
                k=t<4?s.aver:s.aver;
                for(j=0;j<5;j++)
                {if(j==t)
                   continue;
             if(s.aver>=k)
               {k=s.aver;
               t=j;
               }
               s.rank=i+1;
                }
        }

    printf("Number:Name:      score:       Average:rank:\n");

        for(i=0;i<5;i++)
                printf("%-9ld%-10s%-5.1f%-5.1f%-8.1f%-10.1f%-d\n",s.number,s.name,s.score,s.score,s.score,s.aver,s.rank);


        return 0;


}

永恒的蓝色梦想 发表于 2020-5-20 13:24:01

scanf("%ld%s%f%f%f", &s.number, s.name, &s.score, &s.score, &s.score);整数用%f?怎么学的?

gsl9527 发表于 2020-5-20 13:35:58

永恒的蓝色梦想 发表于 2020-5-20 13:24
整数用%f?怎么学的?

#include <stdio.h>
struct student
{long number;
char name;
float score;
float aver;
int rank;
}s;

int main()
{
        int i,j,t;
        float k;

        for(i=0;i<5;i++)
                        scanf("%ld%s%f%f%f",&s.number,s.name,&s.score,&s.score,&s.score);

        for(i=0;i<5;i++)                      //求平均成绩
        {for(j=0;j<3;j++)
                  k+=s.score;
                s.aver=k/3;
        }

        t=0;

        for(i=0;i<5;i++)                  //排名
        {
                k=t<4?s.aver:s.aver;
                for(j=0;j<5;j++)
                {if(j==t)
                   continue;
             if(s.aver>=k)
               {k=s.aver;
               t=j;
               }
               s.rank=i+1;
                }
        }

    printf("Number:Name:      score:       Average:rank:\n");

        for(i=0;i<5;i++)
                printf("%-9ld%-10s%-5.1f%-5.1f%-8.1f%-10.1f%-d\n",s.number,s.name,s.score,s.score,s.score,s.aver,s.rank);


        return 0;


}
改了下数据类型还是存在问题{:10_269:}

gsl9527 发表于 2020-5-20 13:38:44

gsl9527 发表于 2020-5-20 13:35
#include
struct student
{long number;


复制丢失了是s

永恒的蓝色梦想 发表于 2020-5-20 13:44:08

gsl9527 发表于 2020-5-20 13:38
复制丢失了是s

你可倒是说有啥问题啊

gsl9527 发表于 2020-5-20 13:50:15

永恒的蓝色梦想 发表于 2020-5-20 13:44
你可倒是说有啥问题啊

就是平均成绩和排名算不出

chxchxkkk 发表于 2020-5-20 21:42:12

float k;   ===>> float k = 0;
k+=s.score; 这个k没有初始化,
发代码最好点编辑框的 <>图标,比如下面示例
#include <stdio.h>

int main()
{
   return 0;
}
页: [1]
查看完整版本: 得不到预期结果。建立信息表,包括学号、姓名、3门课程的成绩,编写程序,...