+ -
当前位置:首页 → 问答吧 → C program 问题

C program 问题

时间:2013-11-25

来源:互联网

请问点用for loop 写每次loop要入一个float同display 个float既总和
总共 loop 3次就得, thanks
e.g.

enter a float: 0.1
cumulative sum is <0.1>

enter a float: 1.2
cumulative sum is <1.3>

作者: simonlau   发布时间: 2013-11-25

楼主有没有写了的code看

作者: Susan﹏汪汪   发布时间: 2013-11-25

其实 question 有要求 loop 入面要call 一个function
个function系用黎update 个cumulative sum (pass by reference)

[ 本帖最后由 simonlau 於 2013-10-25 08:12 AM 编辑 ]

作者: simonlau   发布时间: 2013-11-25

引用:原帖由 Susan﹏汪汪 於 2013-10-24 10:34 PM 发表
楼主有没有写了的code看


#include <stdio.h>
int main ()
{
void getNumSum(float);
float fSum;
int count;

for (count = 1; count <= 3; count++)
{
printf("Enter a float number: ";
scanf("%f", &fSum);
printf("The current accumulative sum is <%f>", fSum);

getNumSum(fSum);


}

return 0;
}

void getNumSum(float aSum)
{
aSum = aSum + aSum;
}

作者: simonlau   发布时间: 2013-11-25

试写一个唔呼叫函数嘅版本先。

作者: fitcat   发布时间: 2013-11-25

引用:原帖由 simonlau 於 2013-10-25 08:13 AM 发表



#include
int main ()
{
void getNumSum(float);
float fSum;
int count;

for (count = 1; count
用code tag包起程式码吧
复制内容到剪贴板代码:#include <stdio.h>
int main ()
{
void getNumSum(float); //function宣告不可以放在function(main)内
float fSum; //最好先初始化 float fSum = 0;
int count;

for (count = 1; count <= 3; count++)
{
printf("Enter a float number: ");
scanf("%f", &fSum);
printf("The current accumulative sum is <%f>", fSum);

getNumSum(fSum);


}

return 0;
}

void getNumSum(float aSum) //呢到只系pass by value...请再查下pass by reference的做法
{
aSum = aSum + aSum; //呢到只是输入的数字乘2...并不是楼主题目的累加数字
}

作者: Susan﹏汪汪   发布时间: 2013-11-25

但要将by 黎既reference 既value 累加既式应该系点?

作者: simonlau   发布时间: 2013-11-25

引用:原帖由 simonlau 於 2013-10-26 08:06 AM 发表
但要将by 黎既reference 既value 累加既式应该系点?
复制内容到剪贴板代码:void getNumSum(float aSum); //pass by value
void getNumSum(float &aSum); //pass by reference
void getNumSum(float *aSum); //pass by pointer

作者: Susan﹏汪汪   发布时间: 2013-11-25

其实我系唔明点样
个loop如果每一次都将输入store 系fSum
就算我将个fsum pass 去 getNumSum() 既aSum到store
第2次loop时佢点样可以将个再pass过黎既fSum 同第1次pass既 相加??再print番出黎

[ 本帖最后由 simonlau 於 2013-10-27 12:20 AM 编辑 ]

作者: simonlau   发布时间: 2013-11-25

引用:原帖由 simonlau 於 2013-10-27 12:19 AM 发表
其实我系唔明点样
个loop如果每一次都将输入store 系fSum
就算我将个fsum pass 去 getNumSum() 既aSum到store
第2次loop时佢点样可以将个再pass过黎既fSum 同第1次pass既 相加??再print番出黎
你呢到...有咩variable保存上一次的sum呢..???

作者: Susan﹏汪汪   发布时间: 2013-11-25

如果咁样既话我第1次同第2次loop得, 但第3次又唔得



void getNumSum(float *);
float ref;
int main ()
{
float fSum;
fSum = 1;
int count;

for (count = 1; count <= 3; count++)
{
printf("Enter a float number: ";
scanf("%f", &fSum);

if (count == 1)
printf("The current accumulative sum is <%f>\n", fSum);
else
if (count >= 2)
printf("The current accumulative sum is <%f>\n", fSum + ref);

getNumSum(&fSum);
}

return 0;
}

void getNumSum(float *aSum)
{
ref = *aSum;
}

作者: simonlau   发布时间: 2013-11-25

引用:原帖由 simonlau 於 2013-10-27 06:50 PM 发表
如果咁样既话我第1次同第2次loop得, 但第3次又唔得



void getNumSum(float *);
float ref;
int main ()
{
float fSum;
fSum = 1;
int count;

for (count = 1; count = 2)
printf("The ...
你只有set上回纪录到ref...没有累加起来

作者: Susan﹏汪汪   发布时间: 2013-11-25

但我唔识咩reserved word 可以 将ref 收到既value 累加
系咪static? 同埋要点用 thanks

作者: simonlau   发布时间: 2013-11-25

引用:原帖由 simonlau 於 2013-10-27 07:02 PM 发表
但我唔识咩reserved word 可以 将ref 收到既value 累加
系咪static? 同埋要点用 thanks
汪汪写出来比你参考吓
复制内容到剪贴板代码:#include <stdio.h>
void getNumSum(float &, float);

int main ()
{
float fSum = 0, temp; //fSum用来记录累加...temp用来保存当前的输入
int count;

for (count = 1; count <= 3; count++)
{
printf("Enter a float number: ");
scanf("%f", &temp); //当前的输入

getNumSum(fSum, temp); //加起来并保存在fSum
printf("The current accumulative sum is <%f>", fSum); //输出fSum



}

return 0;
}

void getNumSum(float &fSum, float buffer)
{
fSum += buffer; //把输入加在fSum
}

作者: Susan﹏汪汪   发布时间: 2013-11-25

唔该哂 Susan﹏汪汪

我明白啦, thanks

作者: simonlau   发布时间: 2013-11-25

热门下载

更多