努力向前♡ 2022-01-07 08:47 采纳率: 100%
浏览 132
已结题

pta7-5到底有多二运行时错误

img

运行时错误
我的解答思路和尝试过的方法
#include<stdio.h>
#include<string.h>
int main()
{
    int j,o=1;
    double r,p=1,c=0;
    char s[50];
    gets(s);
    int n=strlen(s);
    if(s[n-1]=='0'||s[n-1]=='2'||s[n-1]=='4'||s[n-1]=='6'||s[n-1]=='8')
        o=2;
    for(j=0;j<n;j++)
    {if(s[j]=='2')
            c++;
    }
    if(s[0]=='-')
    {p=1.5;
    n=n-1;}
    r=c/n*p*o*100;
    printf("%.2lf%%\n",r);
    return 0;
}

我想要达到的结果
  • 写回答

2条回答 默认 最新

  • 关注

    结尾无空行,printf("%.2lf%%\n",r);这里的\n删掉。
    C语言变量的声明放在最前面,把变量n的声明放在前面。
    用下面的代码试试:

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        int j,o=1;
        double r,p=1;
        int n,c=0; //这里c改成了int类型
        char s[50];
        gets(s);
        n=strlen(s);
        if(s[n-1]=='0'||s[n-1]=='2'||s[n-1]=='4'||s[n-1]=='6'||s[n-1]=='8')
            o=2;
        for(j=0;j<n;j++)
        {
            if(s[j]=='2')
            c++;
        }
        if(s[0]=='-')
        {
            p=1.5;
            n=n-1;
        }
        r=1.0*c/n*p*o*100; //这里计算的时候用1.0乘以,转成double类型
        printf("%.2lf%%",r);
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月15日
  • 已采纳回答 1月7日
  • 创建了问题 1月7日

悬赏问题

  • ¥15 ats2837 spi2从机的代码
  • ¥200 wsl2 vllm qwen1.5部署问题
  • ¥100 有偿求数字经济对经贸的影响机制的一个数学模型,弄不出来已经快要碎掉了
  • ¥15 这个公式写进SIMULINK中的function模块的代码中应该是什么样的
  • ¥15 javaweb登陆的网页为什么不能正确连接查询数据库
  • ¥15 数学建模数学建模需要
  • ¥15 已知许多点位,想通过高斯分布来随机选择固定数量的点位怎么改
  • ¥20 nao机器人语音识别问题
  • ¥15 怎么生成确定数目的泊松点过程
  • ¥15 layui数据表格多次重载的数据覆盖问题