[英]How do I implement functions in the C language?
我真的很難完成一些家庭作業,如果有人能讓我走上正確的道路,我將不勝感激。
基本上,我被要求定義一個函數來計算迭代次數,直到一個數字大於10
或某個數字( max
)。 我做了這樣的功能:
#include <stdio.h>
int iteration(float x, int max){
int n;
float y;
for (n=0;y=0;n++) {
y=y+x;
if (y>=10,max) {
break;
}
}
return n;
}
首先我甚至不知道,如果if
說法正確的是(我不知道如果這是正確的代碼,只是把一個逗號為“或”)。 在那之后,我想其余的代碼沒問題(澄清將不勝感激!)。
完成此操作后,我創建了一個頭文件( Count.h
,其中該文件為Count.c
):
#include <stdio.h>
int iteration(float x, int max);
最后,我在另一個文件中使用了這個頭文件,它只是頭文件,然后是主函數,如:
int main () {
iteration (9.8, 5);
return 0;
}
一切都編譯得很好(但不是通過“make”命令,當我單獨使用 icc 創建每個目標文件時,它可以工作),但沒有輸出或執行任何內容。
如果有人能讓我知道我哪里出錯了,我將不勝感激! 或者如果你能給我一個提示,我相信我能弄清楚。 我感到壓力很大,因為這只是漫長家庭作業的第一部分,我不敢相信我連這么簡單的東西都想不通!
提前致謝!
這不是一個好問題,我通常只會評論,但我發現格式化評論更難......這就是問題所在,可能......
for (n=0;y=0;n++)
所以在 C 中=
是賦值運算符,而==
測試相等性......所以結果表達式y=0
將始終評估為假......所以永遠不會輸入這個 for 循環(等效是while(0)
)
看起來您實際上並不關心該術語,因此您可以將其留空或將其設置為真正的值...或者只是將其設置為退出標准,因此....
assert (x>0.0); // otherwise the loop will never exit
for (int i = 1; ; i++) // more idiomatic to use i as a loop counter
{
y+=x;
if (y > max)
{
return i;
}
}
return 0; // already over max
所以你需要:
float y = 0;
擺脫n
它什么都不做。
或者,您的意思可能是……
for( n=0,y=0;;n++)
這很好,但有點奇怪和復雜
澄清一下,您是否在主 .C 文件中包含了標題(即#include "Count.h"
)?
此外,您有迭代返回 'n',但什么也不做。 您必須將返回的整數分配給變量( answer = iteration (9.8, 5);
)或輸出它( printf("%i", iteration (9.8, 5))
)。
只要你包含了你的頭文件,你的程序很可能會按預期執行,但是沒有對返回的值做任何處理,它只是結束而不輸出任何東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.