-
從**本身和執行情況來看,可執行程式的內容與貼上的**不匹配(可能是修改後沒有重新編譯,而修改前的**執行,否則不會**現在出現可以編譯傳遞的錯誤,例如第二行末尾有更多的“op”, 和“現有1人捐款無產出”),修改建議如圖所示:
-
**截圖,沒有截圖看起來像鬼,我只能猜測你的輸出語句是錯誤的。
-
sqrt 函式的錯誤發生是因為 sqrt 函式的引數要求是 double、float 或 long double,而你給出了 int 型別的引數,所以引數型別不匹配,變數 area 和 s 被定義為 double,所以 sqrt 函式的引數是 double, 並且不會有錯誤。
查詢三角形面積的完整 C 過程如下(更改請參閱注釋),請注意,輸入的三條邊的整數值用逗號分隔。
#include
#include
int main()
int a,b,c;
double area,s;在這裡,我們將 area 和 s 定義為 double。
printf("請輸入 a、b、c 的值");
scanf("%d,%d,%d",&a,&b,&c);
s=(a+b+c)/;這裡將 2 更改為 type) area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("三角形的面積為 %lf",area);這裡輸出格式化程式"%d"更改為"%lf"
return 0;
-
學習C語言取決於天賦。 我不怕打你,你沒有天賦。
-
輸出不是您預期的,因為您不了解引數傳遞的一些問題。
有兩種方法可以傳遞引數。
1。按值傳遞(你的程式使用這種方式)只傳遞當前值的副本(複製),函式中的所有更改都不會影響原始變數(你的程式是變數 i)。
2。按引用傳遞,即按位址傳遞,是一種更改函式內部變數值的方法,並且會影響傳入的變數。
inti=high; //i=
5reset(i/2); //
將 i 傳遞給函式 reset,然後傳遞 i 的副本,該副本可能成為 tmp i
更改此值不會影響外部變數 i。
printf("i=%d",i);
所以這裡是輸出。
5reset(i=i/2); //
可以這樣寫:i=
我 2、我值變了。
等於 2,然後將 2 傳遞給函式,如上所述。
最後 printf("i=%d",i);
這裡的輸出是 i=
2reset(i/2);
同上,原件相同。
2 將輸出如下
printf("i=%d",i);
workover(i);函式修整內部的 printf 輸出。
0printf("i=%d",i);
同上,i=2第一次給人講解,記得加點。
-
inti=high;//i=5
reset(i/2);這裡傳遞的是值,而不是位址,所以函式對 i 所做的任何修改都對 main 函式沒有影響,所以 i=5
printf("i=%d",i);
reset(i=i/2);//i=i/2
i 是乙個整數。 所以 i=2; 同樣,復位函式不能影響 main 函式中 i 的值,所以 i=2printf("i=%d",i);
reset(i/2);與第乙個一樣,i 的值不會改變,重置不會影響 i=2; printf("i=%d",i);
workover(i);同理,他不能改變 i 的值,所以下面的 i=2;此函式中有乙個 print 語句 (i%i),它始終等於 0,因此無論傳入什麼。
列印值均為 0
printf("i=%d",i);//i=2;
-
輸出 7 7 21 35 的奇數倍 ...
5 的偶數倍顯然是 10、20、30......程式:
-
從您發布的程式碼片段中,我只可以看到列表是 struct node* 型別(struct 指標),其成員 elementtype 是 struct gongjiao 型別(struct 變數)。
在你的 luru 函式中,使用的陣列變數 a 也應該是 struct gongjiao 型別,至於這個 a 在哪裡定義,我看不出來,那是全域性變數。
從**的角度來看,L代表鍊表頭部或第乙個節點的節點,N代表鍊表末尾的節點,M是新建立的節點。 你先在main中新建2個節點,然後呼叫luru函式,雖然luru函式傳遞了引數m,但為m建立了乙個新位址,這意味著鍊表至少有2個節點沒有資料,不管有沒有資料(即使使用了head節點, 只有 1 個沒有資料的節點就足夠了)。另外,你的列印函式是沒有貼上的,按照正常的寫法,迴圈鍊表使用鍊表指標next==null來確定迴圈的結束,並且在建立鍊表的過程中,你沒有設定null到尾節點的指標(即 每次建立的 m->next 應給出初始值 null)。
除非您不使用此指標作為條件。
在 VisualStudio 2013 中編寫和除錯 C 語言程式的步驟: 1.開啟 [檔案] - 新建 - 專案以開啟“新建專案”視窗。2. 在[模板]、[名稱]、[位置]和[解決方案名稱]中選擇[Visual C++] Win32控制台應用程式,可以根據需要填寫。 >>>More