![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 疑難雜症區
(https://www.pcdvd.com.tw/forumdisplay.php?f=34)
- - 關於C語言
(https://www.pcdvd.com.tw/showthread.php?t=664190)
|
---|
關於C語言
以下是我的程式碼
#include <stdio.h> #include <stdlib.h> double power(double,int); int main(int argc, char *argv[]) { int a[9],b[9],c[9]={0}; int numa,numb,i,c1=0,c2=0,d,e; char f; printf("請2個輸入9位以內的數字:\n"); scanf("%d",&numa); scanf("%d",&numb); a[0]=numa%10; for(i=1;i<9;i++) { d=power(10,i+1); e=power(10,i); a[i]=(numa%d-numa%e)/e; } b[0]=numb%10; for(i=1;i<9;i++) { d=power(10,i+1); e=power(10,i); b[i]=(numb%d-numb%e)/e; } fflush(stdin); //因為輸入過numa和numb會在buffer留下\n,所以要清除 printf("請選擇+或-:"); scanf("%c",&f); switch(f){ case '+': for(i=8;i>=0;i--) { c[i]=a[i]+b[i]; if(c[i]<10) c1=0; else { c[i]=c[i]-10; c1=1; } printf("%d",c[i]); } printf("\n"); break; case '-': for(i=8;i>=0;i--) { c[i]=a[i]-b[i]-c2; if(c[i]<0) { c[i]=c[i]+10; c2=1; } else c2=0; printf("%d",c[i]); } printf("\n"); break; default: printf("再試一次\n"); break; } system("PAUSE"); return 0; } //次方函數 double power(double base,int n) { int i; double pow=1; for(i=1;i<=n;i++) pow=pow*base; return pow; } 我想問為什麼我輸入345+345結果是顯示680,我有做進位判斷了說 :cry: |
判斷了進位,但並沒有進到前一位。進位變數c1沒有和前一位運算。
|
所有的時間均為GMT +8。 現在的時間是10:50 AM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。