C语言新手求解

xietengxiao 2014-10-21 02:28:33
#include<stdio.h>
int yideng(int a,int c)
{
if(a>80&&c>1)

return 8000;}
int erdeng(int a,int b)
{
if(a>85&&b>80)

return 4000;}
int sandeng(int a)
{
if(a>90)
return 2000;}
int sideng(int a,char b){
if(a>85&&b=='Y')
return 1000;}
int wudeng(int a,char b)
{ if(a>80&&b=='Y')
return 850;}

int main() {

char p[100][20];
int h[100][3];
char y[100][3];
int sum[100];
int a,b,c,d,m,n;

scanf("%d",&b);
for (a=0;a<b;a++) {
scanf("%s",&p[a]);
scanf("%d%d%d",&h[a][0],&h[a][1],&h[a][2]);
scanf("%c%c",&y[a][0],&y[a][1]);
}
for(a=0;a<b;a++){
sum[a]+=yideng(h[a][0],h[a][2]);
sum[a]+=erdeng(h[a][0],h[a][1]);
sum[a]+=sandeng(h[a][0]);
sum[a]+=sideng(h[a][0],y[a][1]);
sum[a]+=wudeng(h[a][0],y[a][0]);
}
d=0;
m=0;n=0;
for(c=0;c<b;c++)
if(sum[c]>d) {
m=c;n=sum[c];}
printf("%s\%d",p[m],n);
getch();
return 0;
}
某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:



1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;

2) 五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得;

3) 成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)的学生均可获得;

4) 西部奖学金,每人1000元,期末平均成绩高于85分(>85)的西部省份学生均可获得;

5) 班级贡献奖,每人850元,班级评议成绩高于80分(>80)的学生干部均可获得;



只要符合条件就可以得奖,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。例如姚林的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。



现在给出若干学生的相关数据,请计算哪些同学获得的奖金总数最高(假设总有同学能满足获得奖学金的条件)。
...全文
141 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xietengxiao 2014-10-21
  • 打赏
  • 举报
回复
return 8000不是返回值咩
xietengxiao 2014-10-21
  • 打赏
  • 举报
回复
用了楼上的还是不对啊....
百曉生 2014-10-21
  • 打赏
  • 举报
回复
整个程序怎么一个提示性质的语句都没有,也不知道输入的都是什么 而且没有消除非法输入的语句啊
707wk 2014-10-21
  • 打赏
  • 举报
回复
没有返回值。。。
#include <stdio.h>

int yideng(int a,int c)
{
    if(a>80&&c>1)
        return 8000 ;
    return 0;
}
int erdeng(int a,int b)
{
    if(a>85&&b>80)
        return 4000 ;
    return 0;
}
int sandeng(int a)
{
    if(a>90)
        return 2000 ;
    return 0;
}
int sideng(int a,char b)
{
    if(a>85&&b=='Y')
        return 1000 ;
    return 0;
}
int wudeng(int a,char b)
{
    if(a>80&&b=='Y')
        return 850 ;
    return 0;
}

int main()
{
    char p[100][20];
    int h[100][3];
    char y[100][3];
    int sum[100];
    int a,b,c,d,m,n ;
    scanf("%d",&b);
    for(a=0;a<b;a++)
    {
        scanf("%s",p[a]);
        scanf("%d%d%d",&h[a][0],&h[a][1],&h[a][2]);
        scanf("%c%c",&y[a][0],&y[a][1]);
    }
    for(a=0;a<b;a++)
    {
        sum[a]+=yideng(h[a][0],h[a][2]);
        sum[a]+=erdeng(h[a][0],h[a][1]);
        sum[a]+=sandeng(h[a][0]);
        sum[a]+=sideng(h[a][0],y[a][1]);
        sum[a]+=wudeng(h[a][0],y[a][0]);
    }
    d=0 ;
    m=0 ;
    n=0 ;
    for(c=0;c<b;c++)
        if(sum[c]>d)
        {
            m=c ;
            n=sum[c];
        }
    printf("%s\%d",p[m],n);
    return 0 ;
}
xietengxiao 2014-10-21
  • 打赏
  • 举报
回复
哪里错了 出来一些垃圾值

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧