标题:请前辈指导
只看楼主
帝师
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:166
专家分:92
注 册:2018-10-11
结帖率:92.31%
已结贴  问题点数:20 回复次数:3 
请前辈指导
题目:
键盘输入一个正整数n,表示人数,然后再输入n个成绩,要求统计及格和不及格人数,用一行输出,两个数之间用一个空格隔开。
输入:
输入一个正整数n,然后再输入n个成绩
输出:
求统计及格和不及格人数,用一行输出,两个数之间用一个空格隔开。
样例输入
5
58 65.5 88.5 40 98
样例输出
3 2

我的问题:无法去运行弹出奇奇怪怪的东西(一个白色的框)这是为什么呢?(我用的是VC++6.0)
我的代码:
#include<stdio.h>
#include<math.h>
int main()
{
    int panduan(int r);
    int r;//人数;
    int i=1;
    int j;//实参
    int m=0,n=0;//m为及格人数,n为不及格人数
    double c;
    char a;
    scanf("%d",&r);
    a=getchar();
    while(i<=r)
    {
    scanf("%lf",&c);
    j=panduan(c);
    if(j==1)
        m++;
    else
        n++;
    i++;
    }
}
int panduan(int r)
{
    int z;
    if(r>=60)
        z=1;
    else
        z=0;
    return(z);

}
搜索更多相关主题的帖子: 输入 及格 输出 空格 int 
2018-11-15 21:34
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:620
专家分:3020
注 册:2011-4-22
得分:20 
#include<stdio.h>
#include<math.h>
int main()
{
    int panduan(float r);
    int r;//人数;
    int i=1;
    int j;//实参
    int m=0,n=0;//m为及格人数,n为不及格人数
    float c;
    char a;
    scanf("%d",&r);
    //a=getchar();
    while(i<=r)
    {
    scanf("%f",&c);
    j=panduan(c);
    if(j==1)
        m++;
    else
        n++;
    i++;
    }
printf("%d %d",m,n);
}
int panduan(float r)
{
    int z;
    if(r>=60)
        z=1;
    else
        z=0;
    return(z);

}
出现两个含义不一样的r不好,降低了可读性
2018-11-15 22:01
帝师
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:166
专家分:92
注 册:2018-10-11
得分:0 
回复 2楼 zbjzbj
但是我改了之后还是无法正常输出的啊,是不是我的算法出错了
#include<stdio.h>
#include<math.h>
int main()
{
    int panduan(double c);
    int r;//人数;
    int i=1;
    int j;//实参
    int m=0,n=0;//m为及格人数,n为不及格人数
    double c;
    char a;
    scanf("%d",&r);
   
    while(i<=r)
    {
    scanf("%lf",&c);
    j=panduan(c);
    if(j==1)
        m++;
    else
        n++;
    i++;
    }
}
int panduan(int c)
{
    int z;
    if(c>=60)
        z=1;
    else
        z=0;
    return(z);

}


I am the voice of the next generation
Completely digital
Create synthetic auras
2018-11-16 07:32
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
以下是引用帝师在2018-11-16 07:32:23的发言:

但是我改了之后还是无法正常输出的啊,是不是我的算法出错了

因为你不认真,实在不行你就一行一行、一字一字的将你的代码和2楼的代码进行对比。

程序代码:
#include <stdio.h>

_Bool panduan( double score );

int main( void )
{
    size_t n;
    scanf( "%zu", &n );

    size_t pass_count = 0;
    for( size_t i=0; i!=n; ++i )
    {
        double score;
        scanf( "%lf", &score );

        pass_count += panduan( score );
    }

    printf( "%zu %zu\n", pass_count, n-pass_count );
}

_Bool panduan( double score )
{
    return score>=60;
}



[此贴子已经被作者于2018-11-16 09:29编辑过]

2018-11-16 09:26



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




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

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