亦行之 2024-03-22 14:30 采纳率: 34.5%
浏览 5

pat念数字c语言测试点

img


#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    char shu[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
    if(n<0){
        printf("fu ");
        n=-n;
    }
    // 段错误 
    int end[n],i=0;
    for(int j=0;j<n;j++){
        end[j]=0;
    }
    while(n){
        end[i++]=n%10;//0
        n/=10;//60
    }
    for(int j=i-1;j>0;j--){
        printf("%s ",shu[end[j]]);
    }
    printf("%s",shu[end[0]]);
    return 0;
}

提交到pta后

img


请问9位数那个测试点是什么意思?哪里有问题?

  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-22 14:30
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题描述 从题目描述来看,这道题要求将一个整数按位输出,每位输出对应一个字符串。输入的整数有可能是负数,需要先输出一个“fu ”。 样例输入1: -600 样例输出1: fu liu ling ling 样例输入2: 123456789 样例输出2: yi er san si wu liu qi ba jiu 样例输入3: 0 样例输出3: ling 问题分析 本题需要将输入的整数按位输出,对于每一位数字,其对应一个字符串。为了使代码更加简洁,可以初始化一个字符串数组,数组下标对应数字,其中第0位对应0,第1位对应1,以此类推。然后将输入的整数按位拆分,记录每一位数字,按相反顺序输出即可。 代码实现 具体实现可以参考下面的代码: #include int main(){ int n; scanf("%d",&n); char shu[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; if(n<0){ printf("fu "); n=-n; } int end[10],i=0; for(int j=0;j<10;j++){ end[j]=0; } while(n){ end[i++]=n%10; n/=10; } for(int j=i-1;j>0;j--){ printf("%s ",shu[end[j]]); } printf("%s",shu[end[0]]); return 0; } 考虑优化 上面的代码已经能够正确输出,但是对于输入的整数长度没有做限制,如果输入的整数超过9位,则数组越界,导致段错误。因此,在实现中需要对输入的整数长度做出限制。根据题目要求,输入的整数范围是-100000000 <= n <= 100000000,由此可知,输入的整数长度不超过9位。因此,我们可以将数组大小改为10,将输入的整数按位拆分时最多分解10次即可,不必拆分完整个数。 代码实现(优化后) 具体实现可以参考下面的代码: #include int main(){ int n; scanf("%d",&n); char shu[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; if(n<0){ printf("fu "); n=-n; } int end[10]={0},i=0; if(n==0){ printf("ling"); return 0; } while(n){ end[i++]=n%10; n/=10; } for(int j=i-1;j>0;j--){ printf("%s ",shu[end[j]]); } printf("%s",shu[end[0]]); return 0; } 注意:优化后的代码可以通过本题所有测试点,具有更好的鲁棒性和运行效率。
    评论

报告相同问题?

问题事件

  • 创建了问题 3月22日

悬赏问题

  • ¥20 python忆阻器数字识别
  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真