我正在向这个网站发帖提问,因为只有我的老师,我可以询问这个问题,大概数天左右无法使用,我没有任何人可以从中获得帮助。
问题:完成导致此数字的编码
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个,如问题所示?我的代码说明了正确的数字和结果,但我猜他想要一些不同的编码...
任何帮助将不胜感激
答案 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;
}
简而言之,这是一个奇怪的问题,只有你奇怪的教授可以回答它,可能你可以对他/她有所了解
很抱歉,如果我对你或你的教授不尊重,但我不得不说这个