在c++中添加一系列输入数字
Adding a series of input number in c++
嗨,有人能帮我在C++中创建一个输入数字和的代码吗。例如
输入:535输出:13
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int i = 0,sum = 0;
int numarray[50];
void calc(int c,string num) {
do {
numarray[i] = num.at(i);
/*sum = sum + numarray[i];*/
sum = sum + num.at(i);
cout << numarray[i] << endl;
i++;
} while(i != c);
cout << sum << endl;
}
int main() {
string num;
int i,charlen;
int numar[50];
int sum=0;
cout << "Input numbers: ";
cin >> num;
charlen = num.length();
calc(charlen,num);
}
虽然字符是数字,但它们的值通常与它们所代表的字符不同。最常见的编码方案是ASCII编码。
正如您在链接表中看到的,数字没有值1
或2
等。相反,它们有值49
和50
等。字符'5'
和'3'
分别有ASCII值53
和51
,添加例如"535"
会得到结果157
。
但正如你在ASCII表中看到的,所有数字都是连续的,这意味着我们可以使用一个非常简单的技巧从其ASCII值中获得数字值,只需减去'0'
的ASCII值。例如,'5' - '0'
将为您提供值5
。
未经测试:
#include <iostream>
int main()
{
unsigned long long x;
std::cout << "Enter a non-negative number: ";
std::cin >> x;
unsigned long long sum = 0;
do { sum += x % 10; } while ( x /= 10 );
std::cout << "nThe sum of digits of the number is " << sum << std::endl;
}
为了可读性,不将charlength传递到函数中,而只在方法中传递可能会有所帮助。除此之外,在这种情况下,for循环似乎也是一个更好的选择。
void calc(string num) {
int sum = 0, int i = 0;
//for loop run from num.length - 1 to 0 {
/*numarray[i] = stoi(num.at(i));*/
/*sum = sum + numarray[i];*/
sum = sum + stoi(num.at(i));
cout << numarray[i] << endl;
i++;
}
cout << sum << endl;
}
相关文章:
- 如果输入数字为负数,如何循环
- C++程序来查找输入数字的最小/最大值
- 如何接受可变的输入数字?
- cin.fail 在输入数字和字母时不起作用
- 如何在函数中输入数字以输出单词?
- 如果用户输入数字 <0,我如何停止" while loop "?
- C++:如果用户输入数字将其转换为单词,并且如果按回车键程序应退出,则使用开关大小写
- 如何使用正则表达式将输入数字格式化为字符串
- 当我运行我的程序时,即使"user"输入数字||C++ 绘画作业
- C 如何进行计数循环,该循环确定两个输入数字中的哪个是最低的,并且从那里计数
- 如何要求用户在类函数中输入数字
- 输入数字输入到if语句中
- 为什么 cin.fail() 在输入数字后跟字符时不返回 false?
- search用字符串列表输入数字(类似于t9字典)
- 试图创建一个函数来查找用户输入数字的斐波那契数
- 如何允许用户输入数字和运算符
- QTreeWidgetItem 可编辑仅允许输入数字
- 如何提示用户输入数字,直到他们选择奇数?C++
- 输入数字,直到输入 -1
- 编写一个程序,输入数字 1-12 并输出相应的月份