0
非常感謝您的回答! 我寫了一個PROGRAMM這似乎在我看來可能是正確的,但在編譯器中發生錯誤(約使用strcmp的第一行):C - 字符串strcmp和字符串比較來自數組
「錯誤類型:元素的大小爲4個字節,而字符串的大小8 字節「。
float total_weight_kg(Array weight_array) { // todo: modify header (parameters, parameter types, return type)
float sum = 0;
for (int i = 0; i < a_length(weight_array); i+=2)
{
if(strcmp(get(String, weight_array, (i+1)), "kg") == 0){ sum = sum + get (float, weight_array, (i)) ;}
if(strcmp(get (String, weight_array, (i+1)), "l") == 0 ){ sum = sum + get (float, weight_array, (i)) ;}
if(strcmp(get (String, weight_array, (i+1)), "g") == 0 ){ sum = sum + (get (float, weight_array, (i))*1000) ;}
if(strcmp(get (String, weight_array, (i+1)), "mg") == 0){ sum = sum + (get (float, weight_array, (i)) * 1000000) ;}
else{printf("Impossible for this case. Unknown unit of measurement.");}
}
return sum;}
什麼是'Array'?什麼是'a_length'?什麼是'get'?什麼是'字符串'?你會在哪一行發生錯誤?而且它是你展示的編譯器的完整和未編輯輸出?另外,請學習如何創建[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 –
問題到底是什麼?你問是否編譯器拒絕程序是錯誤的?可能它不是。你在問編譯器在抱怨什麼嗎?當然,它給了你一個比你給我們更好的主意。你在問如何解決它?你沒有給我們足夠的信息來告訴。 –
什麼是get(float,weight_array,(i))'? 'float'是一個類型,而不是一個變量,因此屬於函數定義,不作爲參數傳遞。我敢打賭'String'也是一個(不明智的)類型,而不是一個變量。在這種情況下,無論如何'get'都會被傳入不同的類型。 –