![](/img/trans.png)
[英]Need function to find largest value in an array, return it to main( ) and print out
[英]Is there any way to print out the return of a function in main?
我對 C 很陌生,我想知道是否有任何方法可以打印出 function 的返回,以便我可以查看它是否在做我想做的事情。
int sum_arr1_ok() {
int pass = 1;
int fail = 0;
int arr1[] = {1,2,3,4,5}; // small positive values
int arr2[] = {10,-5,5,8,-2}; //mix of small positive and negative values
int arr3[] = {-100,90,-374,497,64,-5,22}; // mix of larger positive negative values
int arr4[] = {0}; // zero
int arr5[] = {-2,-7,-19,-53,-5,-11}; // all negative values
int arr6[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; // large array
int n1 = sizeof(arr1)/sizeof(arr1[0]);
int n2 = sizeof(arr2)/sizeof(arr2[0]); //determines the number of elements in an array
int n3 = sizeof(arr3)/sizeof(arr3[0]);
int n4 = sizeof(arr4)/sizeof(arr4[0]);
int n5 = sizeof(arr5)/sizeof(arr5[0]);
int n6 = sizeof(arr6)/sizeof(arr6[0]);
if((sum_arr1(arr1,n1) == 15)
&& (sum_arr1(arr2,n2) == 16)
&& (sum_arr1(arr3,n3) == 194)
&& (sum_arr1(arr4,n4) == 0)
&& (sum_arr1(arr5,n5) == -97)
&& (sum_arr1(arr6,n6) == 210)) {
return pass; // returns 1 if true
} else {
return fail; // returns 0 if false
}
我知道 if 語句有點混亂,但現在我正試圖找到一種方法來查看我的 function 是否正在正確返回我需要的內容。
我將如何准備一個主要的 function 以便打印出我的測試是通過還是失敗?
如果您想知道 function 正在返回什么,您需要重構代碼以將返回值保存在變量中以便打印。
int rval;
rval = sum_arr1(arr1,n1);
printf("sum_arr1(arr1,n1) = %d\n", rval);
if (rval != 15) return false;
rval = sum_arr1(arr2,n2);
printf("sum_arr1(arr2,n2) = %d\n", rval);
if (rval != 16) return false;
rval = sum_arr1(arr3,n3);
printf("sum_arr1(arr3,n3) = %d\n", rval);
if (rval != 194) return false;
rval = sum_arr1(arr4,n4);
printf("sum_arr1(arr4,n4) = %d\n", rval);
if (rval != 0) return false;
rval = sum_arr1(arr5,n5);
printf("sum_arr1(arr5,n5) = %d\n", rval);
if (rval != -97) return false;
rval = sum_arr1(arr6,n6);
printf("sum_arr1(arr6,n6) = %d\n", rval);
if (rval != 210) return false;
return true;
或者,您可以讓 function 在啟動時打印其參數,並在返回之前打印其返回值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.