「已注销」
2021-10-08 11:56
采纳率: 56.7%
浏览 138

ACM基础题 这题咋做 求完整代码(我写的有错误)

img

#include <string.h>
int main(){
int n,ls,la,i;
char str1[] = "ss";
char str2[] = "rd";
char str3[] = "nd";
char str4[] = "st";
char str[100] ;
while(scanf("%d",&n)!=EOF){
if(n<100){
ls=strlen(str);
la=strlen(str1);
for(i=0;i<la;i++){
str[ls+i]=str1[i];}
}else{
ls=strlen(str);
la=strlen(str2);
for(i=0;i<la;i++){
str[ls+i]=str2[i];}
n=n%100;
if((n/10==1||n/10==5||n/10==9)&&n>9){
ls=strlen(str);
la=strlen(str3);
for(i=0;i<la;i++){
str[ls+i]=str3[i];}
}else{
ls=strlen(str);
la=strlen(str1);
for(i=0;i<la;i++){
str[ls+i]=str1[i];}
n=n%10;
}
if(n==3||n==7||n==2){
ls=strlen(str);
la=strlen(str4);
for(i=0;i<la;i++){
str[ls+i]=str4[i];}
}else{
ls=strlen(str);
la=strlen(str1);
for(i=0;i<la;i++){
str[ls+i]=str1[i];}
}
printf("%d",n);
for(i=0;i<ls+la;i++){
printf("%c",str[i]);}
}
return 0;
}

图片转代码服务由CSDN问答提供 功能建议

                                                                       Submit
Description
变换规则如下
1.百位数不为0时输出时在整个数字后面加上rd,否则输出ss
2十位数是1、5、9的数字输出时在整个数字后面加上nd否则输出ss
 3个位数是3、7、2的数字在输出时在整个数字后面加上st否则输出ss
 当然数字后面的后缓是可以按百位至个位累积的比如13转换后变为13ssndst
 可是ZP忙着背单词,所以他请求聪明的你来帮他解决这样的一个题
  Input
                                                          A
  输入多个整数N(1<=N<1000
  Output
   输出每个整数变换后的样子
   Samples
    input Copy
    output copy
     99smndss
     113rdnd
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

相关推荐 更多相似问题