鱼C论坛

 找回密码
 立即注册
查看: 878|回复: 15

[已解决]算法

[复制链接]
发表于 2020-12-10 10:25:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
int main()
{
        int n,a[]={0},i,f=0,g=0;
        float c=0,d=0,y,k;
        scanf("%d",&n);    //输入有几个成绩
        for(i=0;i<n;i++)
        {
                scanf("%d",&a[i]);   //输入成绩
        getchar();   //吸收回车
        }
        a[n]='\0';
        for(i=0;i<n;i++)
        {
                if(a[i]>=60)
                {
                f++;    //及格数
                }
                if(a[i]>=85)
                {
                        g++;    //优秀数
                }
        }
        c=(float)f/n;  //及格率
        d=(float)g/n;  //优秀率
        y=c*1000;    //将小数转变成整数
        k=d*1000;    //同上
        printf("%2.0f%\n",y);       //输出两位整数且不带小数
        printf("%2.0f%\n",k);       //同上   
        return 0;
}








//题目的要求是,先用一行来输入n(人数),然后每一行输入一个数表示其中一个人的成绩,然后输入及格率xx%(比如85%),优秀率xx%(69%)
最佳答案
2020-12-10 14:48:47
#include<stdio.h>
int main()
{
    int n,a[50],i,f=0,g=0;
    float c=0,d=0,y,k;
    scanf("%d",&n);    //输入有几个成绩
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);   //输入成绩
    }
    for(i=0;i<n;i++)
    {
        if(a[i]>=60)
        {
        f++;    //及格数
        }
        if(a[i]>=85)
        {
            g++;    //优秀数
        }
    }
    c=(float)f/n;  //及格率
    d=(float)g/n;  //优秀率
    y=c*100;    //将小数转变成整数
    k=d*100;    //同上
    printf("%2.0f%%\n",y);       //输出%要输入两个连续的%%
    printf("%2.0f%%\n",k);       //同上   
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-12-10 10:26:13 | 显示全部楼层
我的问题在于,我输入n为7,然后下面七行,每一行输入了一个数,然后没有反应
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 10:46:33 | 显示全部楼层

int n,a[]={0},i,f=0,g=0;
        float c=0,d=0,y,k;
        scanf("%d",&n);  
改成
int n,i,f=0,g=0;
        float c=0,d=0,y,k;
        scanf("%d",&n);
       int  a[n];
试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 11:08:28 | 显示全部楼层
心驰神往 发表于 2020-12-10 10:46

int n,a[]={0},i,f=0,g=0;
        float c=0,d=0,y,k;

不行,会报错,系统说a【n】必须要是含有常量的表达式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 11:11:38 | 显示全部楼层
本帖最后由 心驰神往 于 2020-12-10 11:20 编辑
严凯 发表于 2020-12-10 11:08
不行,会报错,系统说a【n】必须要是含有常量的表达式


我用的Devc++可以,有截图吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 11:20:08 | 显示全部楼层
我这个2010vc++学习版不行,这个动态数组不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 11:23:12 | 显示全部楼层
行吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-12-10 11:23:43 | 显示全部楼层
来个人吧,我不行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 11:57:39 | 显示全部楼层
动态分配数组,包含头文件 #include <stdlib.h>
  
        int n,i,f=0,g=0;
        int *a = 0;
        float c=0,d=0,y,k;
        scanf("%d",&n);    //输入有几个成绩
        a = (int *)malloc(n*sizeof(int));
        ....
        free(a);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 13:44:58 | 显示全部楼层
顶一下顶一下怎么没有人来呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 14:04:59 | 显示全部楼层
本帖最后由 jitianmoshen 于 2020-12-10 14:07 编辑
严凯 发表于 2020-12-10 13:44
顶一下顶一下怎么没有人来呀


用楼上的malloc方法啊,VS系列都不支持变长数组(VLA),而且变长数组不安全
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 14:21:02 | 显示全部楼层
jitianmoshen 发表于 2020-12-10 14:04
用楼上的malloc方法啊,VS系列都不支持变长数组(VLA),而且变长数组不安全

现在不是变长数组的问题,你看看我的源程序,为什么没有输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 14:48:47 | 显示全部楼层    本楼为最佳答案   
#include<stdio.h>
int main()
{
    int n,a[50],i,f=0,g=0;
    float c=0,d=0,y,k;
    scanf("%d",&n);    //输入有几个成绩
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);   //输入成绩
    }
    for(i=0;i<n;i++)
    {
        if(a[i]>=60)
        {
        f++;    //及格数
        }
        if(a[i]>=85)
        {
            g++;    //优秀数
        }
    }
    c=(float)f/n;  //及格率
    d=(float)g/n;  //优秀率
    y=c*100;    //将小数转变成整数
    k=d*100;    //同上
    printf("%2.0f%%\n",y);       //输出%要输入两个连续的%%
    printf("%2.0f%%\n",k);       //同上   
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 14:52:25 | 显示全部楼层

漂亮!谢谢,但是我的代码和你的代码到底是因为哪里不同而结果不同
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 14:57:00 | 显示全部楼层
严凯 发表于 2020-12-10 14:52
漂亮!谢谢,但是我的代码和你的代码到底是因为哪里不同而结果不同

int a[50]  ,你的a[] = {0},数组长度没有定义,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-10 15:01:02 | 显示全部楼层
当时,我觉得,我这个没有定义应该没有事,我后面有一个a[n]='\0',但是为什么不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 10:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表