![](/img/trans.png)
[英]C program to find the sum of all odd integers up to n using while-loop
[英]sum of all the digit of a number using while-loop in C
我正在嘗試解決問題(如標題所述)。 我實際上已經了解到我可以使用模運算符(%) 來做到這一點。 但是我寫的第一個代碼是使用while-loop ,所以我試圖完成代碼。
這是代碼
int main()
{
char arr[1000000];
int i = 0;
int sum = 0;
printf("type the number = ");
scanf("%s", arr);
while(arr[i] != '\0'){
sum = arr[i] + sum;
i++;
}
printf("the total number is = %d", sum);
所以問題是它實際上打印出了大量的數字。我想這是因為數組在char中,有人可以幫我如何將值更改為int嗎?
'0'
。 這里有兩個版本(我添加了一些邏輯來接受開頭帶有+
& -
的數字):
int sumdigitsStr(const char *num)
{
int sum = 0;
int first = 1;
while(*num)
{
if(isdigit(*num)) {sum += *num - '0'; first = 0;}
else
if(first && (*num == '-' || *num == '+'))
{
first = 0;
num++;
continue;
}
else
{
sum = -1; break;
} //error string contains non digits
num++;
}
return sum;
}
int sumdigits(long long num)
{
int sum = 0;
do
{
sum += abs((int)(num % 10));
}while((num = num / 10));
return sum;
}
#include <stdio.h> int main() { int n; scanf("%d", &n); int d, sum = 0; while (n != 0) { d = n % 10; sum = sum + d; n = n / 10; } printf("sum of digits is : %d", sum); return 0; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.