數字河流是一個數字序列,其中每個數字后跟相同的數字加上其數字的總和。
我有一個邏輯問題,我不知道如何回圈我的代碼,以便它會做 20 次。
第一個數字 => KUL_digitsum = sum = 6 => KUL_NEXTRIVERNUM = 123 6 = 129 => KUL_Digitsum * 20
鍛煉
#include <stdio.h>
#include "KuL_RiverFkt.h"
int main()
{
int num;
printf("Eingabe der Zahl: ");
scanf("%d", &num);
KUL_NextRiverNum(KUL_digitsum(num), num);
for (int i = 0; i < 20; i ) {
KUL_NextRiverNum(KUL_digitsum(num), num);
KUL_digitsum(KUL_NextRiverNum(KUL_digitsum(num), num));
}
return 0;
}
int KUL_digitsum(int num)
{
int sum = 0;
while (num > 0) {
int digit = num % 10;
sum = sum digit;
num = num / 10;
}
printf("Die Summe der Zahl = %d\n", sum);
return sum;
}
int KUL_NextRiverNum(int KUL_digitsum, int num)
{
int summe = 0;
summe = num KUL_digitsum;
printf("Die N?chste Riverzahl ist: %d\n", summe);
return summe;
}
uj5u.com熱心網友回復:
您的代碼過于復雜,您忽略了KUL_NextRiverNum.
函式本身是正確的KUL_*,但除非出于除錯原因放置 printfs,否則它們不應進行任何列印。
你要這個:
int main()
{
int num;
printf("Eingabe der Zahl: ");
scanf("%d", &num);
for (int i = 0; i < 20; i ) {
num = KUL_NextRiverNum(KUL_digitsum(num), num);
}
return 0;
}
uj5u.com熱心網友回復:
- 只需
printf()在這些函式中評論并更改主要內容,例如:
#define MAX_RIVER_TERMS 20
// KUL_NextRiverNum(KUL_digitsum(num), num);
for (int i=0; i < MAX_RIVER_TERMS; i ) {
if (i) printf (", ");
printf ("%d", num);
num = KUL_NextRiverNum(KUL_digitsum(num), num);
// KUL_digitsum(KUL_NextRiverNum(KUL_digitsum(num), num));
}
- 在源代碼中使用
#define宏值而不是幻數。 - 宣告/限定引數,就
const好像它們沒有在函式內部被修改一樣。
int KUL_NextRiverNum(const int KUL_digitsum, const int num) {}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/467403.html
上一篇:從檔案中讀取逗號分隔的單詞
