gpt4 book ai didi

c - 64 位数字和 (C) [随意编辑我的英文]

转载 作者:行者123 更新时间:2023-11-30 14:45:28 26 4
gpt4 key购买 nike

这是我作业的一部分,但我不知道为什么输出不正确。帮忙?

/**
* Create a function called digitsum that takes an long integer (64 bits) and
* sums the value of each of its digits. i.e. the number 316 should sum to
* 3+1+6 or 10. Return the sum as the value of the function.
* Hints:
* - If the number is negative, make it positive before anything else.
* - n % 10 will give you the value of the first digit.
* - n / 10 will shift the integer to the right one digit.
* - You're done summing when n is zero.
*/

输入/输出示例:

 * ./p2 316
* num = 316, sum = 10
* ./p2 -98374534984535
* num = -98374534984535, sum = 77
*/
#include <stdio.h>
#include <stdlib.h>

int digitsum(int n){ //first try using function
if (n % 10)
return digitsum == n % 10;
else if (n / 10)
return digitsum == n / 10;
else
return 0; //done summing when n is zero.
}

// Read down in the comments and do **NOT** modify main below.


int main(int argc, char **argv)
{
int64_t n;

if (argc < 2) {
printf("usage: %s <int>\n", argv[0]);
exit(1);
}
n = atoll(argv[1]);

printf("num = %ld, sum = %d\n", n, digitsum(n));
return 0;
}

当我使用gcc编译时,它只显示输出“sum is 310”而不是“sum is 10”?我是 C 编程新手,仍在学习中..

最佳答案

int digitalsum(int n)函数错误。

您应该在循环中添加每个数字,如以下代码:

int digitsum(int64_t n){ //first try using function
int ret = 0;
if (n < 0)
n = -n;
while (n != 0) {
ret += n % 10;
n /= 10;
}
return ret; //done summing when n is zero.
}

关于c - 64 位数字和 (C) [随意编辑我的英文],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53039891/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com