SOGO論壇

標題: 各位高手幫我解決C語言的問題 [列印本頁]

作者: 寶寶貝喲    時間: 2010-9-26 13:04:16     標題: 各位高手幫我解決C語言的問題

一、除錯
1.下面這個程式進行除法運算,請問當中有何錯誤?
#include <stdio.h>

int main(void)
{
     int x = 10, y = 3;
     printf("x /y = %f\n", x/y);
     return 0;
}
2.有個學生為了修正上一個問題之錯誤,而改寫程式如下,但結果仍然不對,請問錯誤在哪邊?
#include <stdio.h>

int main(void)
{
     int x = 10, y = 3;
     float z;
     z = x / y;
     printf("x / y = %f\n", z);
     return 0;
}
3.下面這個程式用來比較x與y是否相等,但程式執行結果有誤,請問哪邊出了錯誤?
#include <stdio.h>

int main(void)
{
     int x, y;
     printf("x = ");
     scanf("%d", &x);
     printf("y = ");
     scanf("%d", &y);
     if (x = y)
         printf("x = y");
     return 0;
}
下面這個程式顯示結果有些不正常,請問應如何修改?
#include <stdio.h>

int main(void)
{
     int x = 10, y = 3;
     printf("x % y = %d\n", x%y);
     return 0;
}

二、討論與實作
1.月球引力約為地球引力的17%,請設計程式讓使用者輸入體重,以求得其於月球上之體重。
2.下面這個程式會顯示何種結果?
#include <stdio.h>

int main(void)
{
     int A = 23, B = 0, C;
     C = A & B && B & C;
     printf("C = %d\n", C);
     return 0;
}
作者: huyoho2000    時間: 2010-9-27 23:31:50

一、除錯
1.下面這個程式進行除法運算,請問當中有何錯誤?
#include <stdio.h>

int main(void)
{
     int x = 10, y = 3;
     printf("x /y = %f\n", x/y);
     return 0;
}

ans:一般來說如果要得到小數點輸出格式,須修正x y 的資料型態 改為浮點數

2.有個學生為了修正上一個問題之錯誤,而改寫程式如下,但結果仍然不對,請問錯誤在哪邊?
#include <stdio.h>

int main(void)
{
     int x = 10, y = 3;
     float z;
     z = x / y;
     printf("x / y = %f\n", z);
     return 0;
}

ans:同1,須修正x y 的資料型態 改為浮點數才能得到正確的z,1跟2的問題在一般較新的編譯器應該都會自動判別合適資料型態只是可能會產生警告

3.下面這個程式用來比較x與y是否相等,但程式執行結果有誤,請問哪邊出了錯誤?
#include <stdio.h>

int main(void)
{
     int x, y;
     printf("x = ");
     scanf("%d", &x);
     printf("y = ");
     scanf("%d", &y);
     if (x = y)   ans:if(x==y)
         printf("x = y");
     return 0;
}

下面這個程式顯示結果有些不正常,請問應如何修改?
#include <stdio.h>

int main(void)
{
     int x = 10, y = 3;
     printf("x % y = %d\n", x%y);
     return 0;
}

ans:printf("x %% y = %d\n", x%y); 才能正確顯示"x % y"

二、討論與實作
1.月球引力約為地球引力的17%,請設計程式讓使用者輸入體重,以求得其於月球上之體重。

ans:
#include <stdio.h>

int main(void)
{
     int x;
     float y;
     printf("x = ");
     scanf("%d", &x);
     y = x * 0.17;
     printf("y = %f", y);
     return 0;
}

2.下面這個程式會顯示何種結果?
#include <stdio.h>

int main(void)
{
     int A = 23, B = 0, C;
     C = A & B && B & C;
     printf("C = %d\n", C);
     return 0;
}

ans:C=0
作者: h364755843    時間: 2011-10-3 20:13:33

我可以給分給其他會員嗎?
樓上大大回答很認真我想給分
作者: h364755843    時間: 2011-10-5 13:06:03

這個版需要思考,需要時間
這個版比較冷門應該要用重獎勵加速網友成長
獎勵不是重點,重點是成長速度
作者: j8055j    時間: 2011-10-7 11:34:29

3.下面這個程式用來比較x與y是否相等,但程式執行結果有誤,請問哪邊出了錯誤?
#include <stdio.h>

int main(void)
{
     int x, y;
     printf("x = ");
     scanf("%d", &x);
     printf("y = ");
     scanf("%d", &y);
     if (x = y)             //C語言個等號為assignment,個等號才為comparison;故此if判斷為恆真式,並不真的做比較,需改為 if (x == y)才會正確
         printf("x = y");
     return 0;
}





歡迎光臨 SOGO論壇 (https://oursogo.com/) Powered by OURSOGO.COM