1002 写出这个数 (20分)

Posted leamant

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1002 写出这个数 (20分)相关的知识,希望对你有一定的参考价值。

a = str[i] - ‘0‘什么意思:

如果str里面存放的是数字字符的话就是转成其数值类型

比如说str[i]是‘1‘,其实ascii码值为0x31,而‘0‘的ascii码是0x30,用str[i]-‘0‘就得到了1

1、size()函数:

c++中,在获取字符串长度时,size()函数与length()函数作用相同。 除此之外,size()函数还可以获取vector类型的长度。

 

2、sizeof():

 

sizeof()运算符用来求对象所占内存空间的大小。

 

要点:字符串的读数字。用数组选择是哪一个拼音

 

部分正确:

#include<iostream> #include<cstring> using namespace std; int main() { char py[10][10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; int a[10]; char st[100]; gets(st); //gets() 不被PAT支持。。改成cin.getline(st,100); int n=0; int q=0; for(int i=0;i<strlen(st);i++){ n+=st[i]-0; } while(n) { a[q]=n%10; q++; n=n/10; } // cout<<py[a[q]];//这里错在哪了,因为没有-1,数组不是从对应相同的数开始 //应该从高位开始输出。 // for(int i=q-1;i>=0;i--) // cout<<" "<<py[a[i]]; // for(int i=q-1;i>=0;i--) { cout<<py[a[i]]; if(i) cout<<" "; } return 0; }

 

。。。没找到问题所在

正确代码:


#include<iostream>
#include<stdio.h>
#include<string.h>
int main()
{
//读取字符串
    char s[101];
//gets(s); //用gcc是可以的,用g++则编译错误,改用fgets()
//Xcode显示warning: this program uses gets(), which is unsafe
//网页直接error: ‘gets’ was not declared in this scope
scanf("%s",&s);
//字符串求和
    int len=strlen(s);
    int sum=0;
    for(int i=0;i<len;i++)
    {
        sum=sum+s[i]-0;
    }
 
//把sum的每一位数字存在数组k里
    int k[10]={0};
    int count=0;//统计sum的位数
    while(sum!=0)
     {
         k[count]=sum%10;
         count++;
         sum=sum/10;
     }
    
//按特定格式倒序输出
    char ci[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
    for(int i=count-1;i>=0;i--)
    {
        printf("%s",ci[k[i]]);
        if(i!=0)
        printf(" ");
    }
 
    return 0;
    
}
————————————————
版权声明:本文为CSDN博主「a-bit」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/eeeemon/article/details/106851911

 

 

以上是关于1002 写出这个数 (20分)的主要内容,如果未能解决你的问题,请参考以下文章

1002 写出这个数 (20)(20 分)

1002 写出这个数 (20分)

1002 写出这个数 (20 分)

1002 写出这个数 (20 分)

1002 写出这个数 (20 分)

PATB1002 写出这个数 (20)(20 分)