(僅限遞回解決方案)我正在使用函式:int diff(char str[],int i) 輸入是字串:123,偶數索引中的值的總和是 1 3=4奇數索引中的值為 2,因此陣列中偶數索引的值之和與奇數索引的值之和之差為:4-2= 2。
我已經在主要內容中寫了這個但它不對,我該如何修復我的代碼???:
printf("Enter a string:");
if(scanf("%s",str)!=1)
{
printf("Input error");
return 1;
}
printf("The difference is: %d", diff(str, 0));
return 0;
在 main 之外是函式:
int diff (char str[], int i)
{
if(str[i]=='\0' || i>=100)
return 0;
if(i%2==0)
return (str[i] diff(str,i 1));
else
return (-str[i] diff(str,i 1));
}
uj5u.com熱心網友回復:
另一種方法可能是:
int diff (const char str[])
{
if (str[0] == '\0')
return 0;
if (str[1] == '\0')
return str[0] - '0';
return str[0] - str[1] diff(str 2);
}
uj5u.com熱心網友回復:
字串“123”的元素將由您的計算機存盤為字符代碼。在現代計算機上,這通常是 ASCII 派生的編碼,這意味著 0 的值是 48,1 是 49,2 是 50,等等。由于字符代碼是有序的,您可以通過減去 0 的代碼值來轉換, 那是val = str[i] - '0';
int diff (char str[], int i)
{
if(str[i]=='\0' || i>=100)
return 0;
int value = str[i] - '0';
if(i%2==0)
return (value diff(str,i 1));
else
return (-value diff(str,i 1));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/379095.html
