标题:用数组,指针做这个,谢谢十分
只看楼主
魑魅
Rank: 1
等 级:新手上路
帖 子:77
专家分:9
注 册:2016-9-18
结帖率:85.71%
已结贴  问题点数:10 回复次数:6 
用数组,指针做这个,谢谢十分
Welcome To Dalian Neusoft Institute of Information ACM-ICPC Online Judge
Home Web Board ProblemSet Status Ranklist 1 Contest F.A.Qs
 ModifyUser 16180600334 (0) Logout 
1177: 2006年春浙江省计算机等级考试二级C 编程题(1)
Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 2099  Solved: 1540
[Submit][Status][Web Board]
Description

编写程序,输入一批学生的成绩,遇0或负数则输入结束,要求统计并输出优秀(大于85)、通过(60~84)和不及格(小于60)的学生人数。
运行示例:

Input

Output

Sample Input
88 71 68 70 59 81 91 42 66 77 83 0
Sample Output
>=85:2
60-84:7
<60:2
HINT

搜索更多相关主题的帖子: 计算机等级 编写程序 浙江省 Welcome Memory 
2016-11-16 18:33
卜算子
Rank: 1
等 级:新手上路
帖 子:86
专家分:8
注 册:2016-9-18
得分:4 
#include <stdio.h>
main()
{
   
    int a[80],i,b,c,d,j;//因为是一批所以不确定输入多少,定义大一点的数组//
    b=0;
    c=0;
    d=0;
    j=0;
    printf("PLEASE INPUT:");
    for(i=0;i<80;i++)
    {
        
        scanf("%3d",&a[i]);
        if(a[i]==0||a[i]<0)
            break;
    }
    while(a[j]!=0||a[j]<0)
    {
         if(a[j]>=85)
        {
            b++;
        }
            else if(a[j]>=60)
            {
                c++;
            }
            else if(a[j]>0)
            {   
            d++;
            }
            j++;
    }
    printf("优秀 %3d\n通过 %3d\n不及格 %3d\n",b,c,d);
    getchar();
    getchar();
}

岂曰无衣,与子同袍!
2016-11-16 19:04
卜算子
Rank: 1
等 级:新手上路
帖 子:86
专家分:8
注 册:2016-9-18
得分:0 
不过我建议你自己思考一下

岂曰无衣,与子同袍!
2016-11-16 19:13
卜算子
Rank: 1
等 级:新手上路
帖 子:86
专家分:8
注 册:2016-9-18
得分:0 
0.0忘了用指针了...不过也差不多,你就在这个程序基础上,再定义一个指针,然后FOR循环,和后面的条件判断可能要改一下.大体是这样,我们上课了0.0

岂曰无衣,与子同袍!
2016-11-16 19:15
魑魅
Rank: 1
等 级:新手上路
帖 子:77
专家分:9
注 册:2016-9-18
得分:0 
回复 4楼 卜算子
谢谢
2016-11-16 19:18
HdtDL
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2016-11-16
得分:4 
程序代码:
#include <stdio.h>

int main()
{
    int p[1000];
    int i,good=0,pass=0,fail=0; 
    for (i=0;;i++)
    {
        scanf("%d",&p[i]);
        if (p[i]<=0)
            break;
        //part of input is over.
        if (p[i]>=85)
            good++;
        else {
            if (p[i]>=60)
                pass++;
            else fail++;
        }
    }
    printf(">=85:%d\n60-84:%d\n<60:%d\n",good,pass,fail);
    return 0;
}

指针复杂一些,留作思考吧~
2016-11-16 23:43
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:4 
指针可以~
程序代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int *score=(int *)malloc(50);
    int *p=score;
    int a,b,c;
    a=b=c=0;
    while(scanf("%d",p++)&&*(p-1)>0);
    for (p=score;*p>0;p++)
    {
        if (*p>85)
            a++;
        else if (*p>59)
            b++;
        else c++;
    }
    printf("\n>85:%d\n60-84:%d\n<60:%d\n",a,b,c);
    return 0;
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-17 00:08



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




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

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