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分)的主要内容,如果未能解决你的问题,请参考以下文章