gpt4 book ai didi

c - 如何对同一变量中的所有值求和?

转载 作者:太空宇宙 更新时间:2023-11-04 08:02:46 26 4
gpt4 key购买 nike

我正在做一项作业,但代码在做一些奇怪的事情。这是我“编程”的第 7 天,所以它可能只是一个明显的错误,我根本看不到。

我希望程序对存储在同一个变量中的所有值求和。我试图从这里复制一些代码:https://stackoverflow.com/a/42166389 , 但它没有按预期工作。

因此,给定一组值-比方说012345-,程序应该每隔一个数-4、2 和0- em>,然后对它们求和 - 返回“6”- 。而且,尽管它确实识别了数字,但它并没有对它们求和……至少是正确的。我不明白为什么,但它返回 48

我尝试了不同的输入,虽然正确识别了数字,但在所有情况下总和都是错误的。

如果有任何帮助,我将不胜感激。哦,这是我的代码!:

#include <cs50.h>
#include <stdio.h>
#include <string.h>

int main(void) {
char c;
string number;
int length, i, sum = 0;

printf("Type card number: ");
number = get_string();

printf("Tell us how many characters long was your number: ");
length = get_int();

for (i = 1; i <= length / 2; i++) {
c = number[(strlen(number) - i * 2)];
sum = c;
printf("%c %i %s\n", c, sum, number);
}
}

一些例子:

对于输入012345length=6,输出为:

4 52 012345
2 50 012345
0 48 012345

对于输入9876543210length=10,输出为:

1 49 9876543210
3 51 9876543210
5 53 9876543210
7 55 9876543210
9 57 9876543210

总而言之,我想要的是一种对同一变量中的所有值求和的方法。

最佳答案

 sum = c;

你正在给 sum 赋 ASCII 值。你应该得到相应的数字并将其添加到 sum,而不仅仅是赋值。

 4 52 012345  //52 is ASCII value of 4
2 50 012345 //50 is ASCII value of 2
0 48 012345 //48 is ASCII value of 0

试试这个,

 sum+=c-'0';

关于c - 如何对同一变量中的所有值求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44872875/

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