// Program jumlahBilangan.c
#include <stdio.h>
int jumlahDigit();
int jumlahDigit(int bilangan)
{
if (bilangan == 0){
return 0;}
bilangan = 10;
}
int main()
{
int bilangan, hasil;
printf("Masukkan angka bilangan bulat: \n");
scanf("%d", &bilangan);
hasil = jumlahDigit(bilangan);
printf("Jumlah digit angka bilangan: %d\n", hasil);
return 0;
}
修正程式代碼,例如輸入數字7631,則程式函式會回傳數值17,即數字的位數。值 17 是加法的結果 (7 6 3 1)
uj5u.com熱心網友回復:
所問的問題無法回答,因為對于 17 的輸入應該如何到達 7631 的輸出沒有足夠的解釋。
但是,本著如何提問和回答家庭作業問題的精神?我將對顯示的代碼進行評論,以使提問者能夠改進到可以將問題集中在正確演算法上的程度。
// Program jumlahBilangan.c
#include <stdio.h>
int jumlahDigit(/* put at least int here, to match the function definition below */);
int jumlahDigit(int bilangan)
{
if (bilangan = 0){ /* attention, = is assignment, you most likely want == */
return 0; /* at this point the function is left */
bilangan = 10; /* this is never executed, even with == above) */
}
/* you probably want an else {...} here */
/* with the "..." being something involving bilangan =10; */
/* in the end please make sure that you always end in a return statement */
}
int main(/* better add void here */)
{
int bilangan, hasil; /* better initialise both variables here */
printf("Masukkan angka bilangan bulat: \n");
scanf("%d", &bilangan); /* consider not ignoring the return value here ... */
hasil = bilangan; /* if scan fails, both are still not cleanly initialised, UB */
/* somewhere here I expect a call to int jumlahDigit(int bilangan) */
/* maybe replace above line by hasil = jumlahDigit(bilangan),
but make sure to have return statements in all possible outcomes
of that function */
printf("Jumlah digit angka bilangan: %d\n", hasil);
return 0;
}
uj5u.com熱心網友回復:
#include <stdio.h>
int jumlahDigit();
int jumlahDigit(int bilangan){
if(bilangan==0) {
return 0; }
else
{
int hasil = 0;
while(bilangan != 0)
{
hasil = hasil bilangan % 10;
bilangan = bilangan / 10;
}
return hasil;
}
}
int main()
{
int hasil, bilangan;
printf("Masukkan angka bilangan bulat: \n");
scanf("%d", &bilangan);
hasil = jumlahDigit(bilangan);
printf("Jumlah digit angka bilangan: %d\n", hasil);
return 0;
}
因此,當我輸入例如數字 7631 時,問題將產生 17 的值。17是我輸入的值相加的結果(7 6 3 1 = 17)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/379868.html
標籤:C
上一篇:如何在正方形內找到公共區域
