此修订版需要代码建议

时间:2015-12-28 03:48:41

标签: c if-statement for-loop

我正在向这个网站发帖提问,因为只有我的老师,我可以询问这个问题,大概数天左右无法使用,我没有任何人可以从中获得帮助。

问题:完成导致此数字的编码

2 3 5(命令提示符下键入的数字) 2 + 5 + 8 + 11 + 14 == 40

22 -2 7(命令提示符下键入的数字) 22 + 20 + 18 + 16 +14 + 12 + 10 == 112

#include <stdio.h>
int main(void)
    {
    int a, d, n;
    int i, s;
    scanf("_____", __, __, __);
    ___;
    for (i = 1; _____; i = i + 1) {
        _________________;
        printf("____ ", _________);
        _________________
        _________________
        _________________
        _________________
    }
    printf("%d\n", s);
    return 0;
}

以下是我的回答

---------------我的回答--------------

#include <stdio.h>
int main(void)
    {
    int a, d, n;
    int i, s;
    scanf("%d%d%d", &a, &d, &n);
    s = 0;
    for (i = 1; i <= n; i = i + 1) {
       if (i != n)
           printf("%d + ", a + (i - 1)*d);
       if (i == n)
           printf("%d", a + (i - 1)*d);
       s = (a + a + (i - 1)*d)*i / 2;
    }
    printf(" == %d\n", s);
    return 0;
}

当我向老师提交答案时,他说错误是“源代码格式彼此不一样”。我不能再问了,因为他很忙,他不得不离开去做一些重要的事情。我想知道我的答案有什么问题。也许是因为上一个print语句包含“==%d \ n”而不是“%d \ n”?我在“for”语句中的陈述总共最多5个,应该是6个,如问题所示?我的代码说明了正确的数字和结果,但我猜他想要一些不同的编码...

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

这是愚蠢的。这样做的想法是解决问题但不匹配格式。格式化无论如何都是非常愚蠢的,代码本身就是强迫一个人写错了。设计对于一个简单的问题来说太复杂了,这个问题可以像下面这样解决

#include <stdio.h>

int main() {

    int start, interval, numbers;
    scanf("%d%d%d", &start, &interval, &numbers);
    int sum = start;
    int finalSum = 0;
    int i;
    for(i = 1; i <= numbers; i++, sum = sum + interval)
        finalSum += sum;
    printf("finalSum = %d\n", finalSum);

    return 0;
}

简而言之,这是一个奇怪的问题,只有你奇怪的教授可以回答它,可能你可以对他/她有所了解

很抱歉,如果我对你或你的教授不尊重,但我不得不说这个