努力向前♡ 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日

悬赏问题

  • ¥66 比特币地址如何生成taproot地址
  • ¥20 数学建模数学建模需要
  • ¥15 关于#lua#的问题,请各位专家解答!
  • ¥15 什么设备可以研究OFDM的60GHz毫米波信道模型
  • ¥15 不知道是该怎么引用多个函数片段
  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决