Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我对和差函数的解是';行不通_C_For Loop_Sum_Conditional Statements_Difference - Fatal编程技术网

C 我对和差函数的解是';行不通

C 我对和差函数的解是';行不通,c,for-loop,sum,conditional-statements,difference,C,For Loop,Sum,Conditional Statements,Difference,我试图编写一个循环函数,返回给定正整数nVal的计算结果 给定nVal,函数计算1+2-3+4-5+…+恩瓦尔。例如,如果nVal=4,函数返回1+2-3+4的结果。我提出的解决方案没有正确循环nVal,我不知道如何修复它 有我可以尝试的修复方法吗 以下是我到目前为止的代码(顺便说一句,我使用的是C语言): #包括 int getValue(nVal) { int i,nResult=0; 对于(i=nVal;i因为数字是连续的,所以我删除了if-elseif语句,我使用变量k将“+”反转为“-

我试图编写一个循环函数,返回给定正整数nVal的计算结果

给定nVal,函数计算1+2-3+4-5+…+恩瓦尔。例如,如果nVal=4,函数返回1+2-3+4的结果。我提出的解决方案没有正确循环nVal,我不知道如何修复它

有我可以尝试的修复方法吗

以下是我到目前为止的代码(顺便说一句,我使用的是C语言):

#包括
int getValue(nVal)
{
int i,nResult=0;

对于(i=nVal;i因为数字是连续的,所以我删除了if-elseif语句,我使用变量k将“+”反转为“-”,我的循环从2开始到nVal

你的循环

for (i = nVal; i <= nVal; i++)
如果我写为1输入,输出为2,我删除这一行

我的代码:

#include <stdio.h>

int getValue (nVal)
{
int i, nResult = 1;
int k=1;
for (i = 2; i <= nVal; i++)
{
     nResult+=i*k;
     k*=-1;
}
return nResult;

}

int main ()
{
int nVal, nResult;
printf ("Enter n value: ");
scanf ("%d", &nVal);

nResult = getValue (nVal);

printf ("Result: %d", nResult);

return 0;

}
#包括
int getValue(nVal)
{
int i,nResult=1;
int k=1;

对于(i=2;我考虑循环
for(i=nVal;i调试器做什么?我对C编程还是相当陌生
intgetvalue(nVal){…}
:永远不要写这样的代码。它应该是
intgetvalue(intnval){…}
。编译器应该给出一个警告,例如
警告:“nVal”的类型默认为“int”
。此循环用于(i=nVal;我转到您最喜欢的搜索引擎,搜索
调试器以查找
(当然,您可以将
替换为您正在使用的实际环境,如Visual Studio、Linux控制台或类似环境).如果你不想成为一个“初学者”永远,知道如何使用调试器是至关重要的。有了调试器,您可以在监视变量的同时逐条检查代码语句,并查看它们的值是如何变化的。因此,您不一定需要条件语句来切换运算符?@MartyMcfly:您可以使用条件语句,但代码将很长。数字是连续,所以只需使用一个变量就可以更改符号。您所做的不仅仅是“使用变量k将“+”反转为“-”。您还更改了什么?为什么要更改?请花一些时间阅读或刷新。好的,可以,谢谢您指出。
if (nVal == 1)
nResult +=i + 1;
#include <stdio.h>

int getValue (nVal)
{
int i, nResult = 1;
int k=1;
for (i = 2; i <= nVal; i++)
{
     nResult+=i*k;
     k*=-1;
}
return nResult;

}

int main ()
{
int nVal, nResult;
printf ("Enter n value: ");
scanf ("%d", &nVal);

nResult = getValue (nVal);

printf ("Result: %d", nResult);

return 0;

}