假设数组为a [] = {123,34533,21123}。我如何计算索引1处的元素长度?我知道我做错了所有但我不知道该怎么做
#include<iostream>
using namespace std;
int main()
{
int a[]={123,231,23},j=0,num,last_digit,sum;
int size_of_array=sizeof(a)/4;
int pos;
cin>>pos;
num=a[pos];
for(int i=0;i<size_of_array;i++)
{
last_digit=num%10;
sum=sum+last_digit;
num=num/10;
}
cout<<sum;
}
答案 0 :(得分:0)
“我要计算我需要其长度的元素的位数之和”
令人困惑。如果要将元素转换为字符串然后采用其长度,则可以执行以下操作:
std::cout << "Length: " << std::to_string(a[i]).size() << std::endl;
其中i是数组a []的索引。
但是,如果您想计算数字的总和,那么我想您正在尝试这样做:
int sumCell = 0;
int cellValue = a[i];
while(cellValue > 0) {
sumCell = cellValue % 10;
cellValue /= 10;
}
Sum在变量sumCell中。
您是在寻找这两种解决方案中的一种还是另一种?
答案 1 :(得分:0)
#include<iostream>
using namespace std;
int main()
{
int a[] = { 123, 231, 23 }, j = 0, num, last_digit, sum = 0, count = 0;
size_t size_of_array = sizeof(a) / 4;
size_t index;
cin >> index;
num = a[index];
while (num != 0) {
last_digit = num % 10;
sum = sum + last_digit;
num = num / 10;
count = count + 1;
}
cout << sum << endl; //sum
cout << count; //number of digits
}
答案 2 :(得分:0)
就像普通的int
#include<iostream>
int main() {
int a[]={123,231,23};
size_t pos; // use size_t for index and size
std::cin >> pos;
int elm = a[pos];
int cnt = 1;
while ( elm /= 10) {
++cnt;
}
std::cout << cnt << std::endl;
return 0;
}
输入索引并获取长度。