我正在使用数组开发其中一个程序。 我想要的是...添加char数组的元素并给出输出。 这是代码:
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char number[8];
int in , i = 0 , square = 0;
cin>>number;
while(1){
if(i != strlen(number)){
square = (number[i]) + square;
cout<<square<<"\n";
}
else{
break;
}
i++;
}
cout<<square - 48*(strlen(number));
return 0;
}
奇怪的是,输出是48 x(输入的位数)比原始输入多,这就是我从输出中减去该部分的原因。
为什么会这样?
答案 0 :(得分:0)
number[i]
是一个字符,但您将其视为整数。 '0'
(一个字符)不等于0
(整数),'1'
不等于1
等。将十进制数字转换为整数的简单方法是从中减去'0'
。喜欢这个
square = (number[i] - '0') + square;
'0' - '0'
相等0
,'1' - '0'
等于1
等。