為什麼我的代碼調用一個函數兩次?

Cenk28
    #include <stdio.h>
int bolucu(int n){
int temp;
temp=n;
int basamak=0;
while(temp != 0){
    temp/=10;
    ++basamak;
}
int digits = 0;
int m = n;
while (m) {
    digits++;
    m /= 10;
}
digits /= 2;
int tmp = 0, lower_half = 0;
while (digits--) {
    tmp *= 10;
    tmp += n % 10;
    n /= 10;
}
while (tmp) {
    lower_half *= 10;
    lower_half += tmp % 10;
    tmp /= 10;
}
if (basamak % 2==1){
    n/=10;
}
int a;
int b;
a = n;
b=lower_half;
printf("%d %d\n",a,b);
int loopTemp;
for(int i=0;i<10;i++){
    a=3*a+2;
    b=2*b+3;
    if(a>b){
        temp=a;
        a=b;
        b=temp;
    }
    if(a==b){
        printf("Congratulations you caught one!!!\n");
        return 1;
        break;
    }
}
if(a!=b){
    printf("10 tries were not enough!\n");
    return 2;
}
}
int main()
{
    int number;
    printf("\nEnter a number with at least two digits: ");
    scanf("%d",&number);
    bolucu(number);
    while(bolucu(number) != 1){
    printf("\nEnter a new number: ");
    scanf("%d",&number);
    printf("%d",bolucu(number));
    }
    return 0;
}

例如:這是終端屏幕。

如您所見,還有第二個。第一個是真的,但我不想要第二個。我怎樣才能擺脫第二個電話?(對於糟糕的代碼編寫也很抱歉,我是新手)我在這裡缺少什麼?而且我不能使用 stdio 以外的任何庫。(比如 math.h)

阿里巴希爾

這樣做的原因是因為您bolucu()while循環內部和條件檢查中調用了該函數要解決此問題,請調用該函數並將其結果保存在變量中一次,然後在檢查和打印語句中使用該單個結果。你的主函數可以像這樣重寫:

int main()
{
    int number;
    printf("\nEnter a number with at least two digits: ");
    scanf("%d", &number);
    int result = bolucu(number);
    while (result != 1)
    {
        printf("\nEnter a new number: ");
        scanf("%d", &number);
        result = bolucu(number);
        printf("%d", result);
    }
    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

為什麼我的函數返回 0.0?(C 代碼)

為什麼在 Python 中用參數調用這個“構造函數”?

為什麼我不能在 tkinter 綁定中調用函數?

CS50/Substitution – 為什麼 tolower() 函數在我的代碼中不起作用?

為什麼此函數在定義後立即調用時返回最後一個參數

為什麼我需要輸入兩次才能運行代碼

如何打印出一個階乘數?我的代碼不斷打印出太多數字,我不知道為什麼?

為什麼在調用函數時會出現 Invalid hook 調用?

為什麼這個函數只是被跳過而不是被調用?

此代碼在調用 create 函數後需要兩個輸入

為什麼我在 C 中的 main 函數只打印第一個 for 循環?

誰能告訴我為什麼這個函數在調用時會拋出錯誤

如果我在函數頂部切換註釋行的位置,為什麼我的代碼不起作用?這是一個記憶回憶聲明

為什麼我的反向鍊錶代碼只返回第一個節點?

為什麼調用 someMockInstance.Object 調用構造函數?

為什麼這個簡單的python函數只能工作一次

為什麼 Redux Saga yield 調用返回一個函數,而不是數據?

為什麼我的 C 數組會記住之前函數調用的舊數據?

str 不可調用錯誤。我正在用 python 製作一個狗頭勝過代碼,我想知道是否有人知道我為什麼會收到這個錯誤

為什麼要在調用之前將JS“窗口”包裝成一個自調用函數?

我有一個函數,它用不同的參數調用了 12 次,在代碼中連續調用 12 個函數可以嗎?

在循環中製作一個簡單的菜單來調用函數,堅持為什麼它不起作用

為什麼 Python 的 yield 語句不能在一個函數中調用,也不能在它調用的另一個函數中調用,為什麼在嘗試時沒有報告錯誤?

我用命令附加做了一個代碼,用pytorch比較兩個張量。它出什麼問題了?

NodeJS 為什麼不在我的 IF/Else 語句中調用我的函數

為什麼 React 在第一次調用函數時返回空?

為什麼 Next JS 中的異步函數在我的 Typescript 代碼中返回空對象?

函數代碼是用oracle編寫的。我無法理解它在做什麼

為什麼應用tranwrd函數後最後一個字符被刪除

TOP 榜单

热门标签

归档