我想在 cents 引數中輸入引數,這樣如果引數(cents)大于 25,它將進入 for 回圈,除以 25 后給出余數。現在,這個余數被保存為 cent 的新值,如果它仍然大于 25,它將進入回圈并發生相同的程序,直到我們得到小于 25 的 cents 的最后一個值。
沿著這個,我運行這個計數識別符號,以便每次回圈運行時它都會累加并告訴我回圈運行了多少次。
int calculate_quarters(int cents)
{
// TODO
for(int count=0; cents>=25; count )
{
cents = cents%25;
}
return cents;
return count;
}
我想最后得到 cent 的值,它小于 25 并計算回圈運行的次數。但是,每次我運行它都會給我這個錯誤
undeclared use of identifier 'count'
我想做的假設是,我將引數 55 給了函式 calculate_quarters_,所以在回圈內運行后,它應該給我美分 5 的值,最終計數為 2。
uj5u.com熱心網友回復:
這是一個作業示例,演示如何通過(out)指標回傳兩個值:
#include <stdio.h>
void calculate_quarters(unsigned cents, unsigned *count, unsigned *remainder) {
*count = cents / 25;
*remainder = cents % 25;
}
int main() {
unsigned cents = 54;
unsigned count;
unsigned remainder;
calculate_quarters(cents, &count, &remainder);
printf("%u cents is %u quarters and %u remainding cents\n", cents, count, remainder);
return 0;
}
uj5u.com熱心網友回復:
在 C 中,return 陳述句不是這樣作業的,如果要回傳多個值,則必須使用結構。此外,您不需要使用回圈來解決此問題。
我會這樣解決它:
如果你正在學習 CI,推薦http://beej.us/guide/bgc/
#include <stdio.h>
struct quarter {
int remainder;
int count;
};
struct quarter calculate_quarters(int cents) {
int count = cents / 25;
int remainder = cents % 25;
struct quarter q = {.remainder = remainder, .count = count};
return q;
}
int main(void) {
int cents = 55;
struct quarter q = calculate_quarters(cents);
printf("For %d cents, you have %d quarters and %d cents left over\n", cents,
q.count, q.remainder);
return 0;
}
$ gcc quarter.c -Wall -o quarter
$ ./quarter
For 55 cents, you have 2 quarters and 5 cents left over
uj5u.com熱心網友回復:
您的解決方案是錯誤的結構,例如(return下一行中的美分和計數)并且回圈還不是邏輯,因為count在 for 回圈中是 init 并且您在外部回圈中回傳它,所以count無法定義。
我想你的問題是你想數可以除25的數字,多少次?這是我的建議。
int calculate_quarters(int cents)
{
int count = 0;
while (cents >= 25)
{
count ;
cents %= 25;
}
return count;
}
如果你想在 for 回圈中做:
int calculate_quarters(int cents)
{
int count;
for (count = 0; cents >= 25; count )
{
cents = cents % 25;
}
return count;
}
注意:如果要回傳count,可以在開始時對其進行初始化。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/455493.html
