Re: [問題] 二進位數字排序
※ 引述《wupeiing (永和汪小龍)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: C
: 問題(Question):
: 執行錯誤
: 餵入的資料(Input):
: 任意二進位數
: 預期的正確結果(Expected Output):
: K會跑出輸入的數字中1的個數
: 錯誤結果(Wrong Output):
: 輸入的binary中 最後一個1會算不到
: 如 輸入 1111 k會等於3
: 程式碼(Code):(請善用置底文網頁, 記得排版)
: 這只是其中一個function 是為了算出binary中1的個數
: 變數c代表的是次方數 從另一個function已經算出c會是binary的最高位次方-1
: 如 輸入 1111 c會等於3
: int ones(int binary)
: {
: int c,a,i,k=0;
: c=order(binary);
: while(c>=0)
: {
: i=(int)pow(10,c);
: a=binary/i;
: binary=(binary)%i;
: if(a==1)
: {
: k=k+1;
: }
: c=c-1;
: }
: return k;
: }
: 真的很謝謝各位的幫忙
不好意思...改了之後還是不對欸
我把打到目前的程式碼po上來好了
其實是要使用者輸入二進位數字 例如 1100101
output出來是要排過序的 例如1111000 這樣
然後不能使用陣列 指標 我是想說 用function算出1的個數(在main以k為變數)
然後算出此二進位的位數(在main中以c為變數)
c-k就會是0的個數(main中以a為變數)
最後用迴圈printf出K次的1再printf出a次的0就會是答案了
目前還沒做到最後用迴圈printf的動作
還在算k的個數就一直卡住 以下是目前為止的程式碼
#include <stdio.h>
#include <stdlib.h>
int order(int binary)
{
int a,c=0,n,i=pow(10,c);
while(i<=binary)
{
c=c+1;
i=(int)pow(10,c);
}
c--;
return c;
}
int ones(int binary)
{
int c,a,i,k=0;
c=order(binary);
while(c>=0)
{
i=(int)pow(10,c);
a=binary/i;
binary=(binary)%i;
if(a==1)
{
k=k+1;
}
c=c-1;
}
return k;
}
int main()
{
int binary,c,a,k;
scanf("%d",&binary);
c=order(binary)+1;
k=ones(binary);
a=c-k;
printf("%d %d",k,a);//是為了先看我的k是不是正確的 正確才會去寫loop
system("PAUSE");
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.71.244.63
※ 編輯: wupeiing 來自: 219.71.244.63 (10/15 21:45)
→
10/15 21:44, , 1F
10/15 21:44, 1F
→
10/15 21:46, , 2F
10/15 21:46, 2F
→
10/15 21:46, , 3F
10/15 21:46, 3F
→
10/15 21:50, , 4F
10/15 21:50, 4F
→
10/15 21:50, , 5F
10/15 21:50, 5F
→
10/15 21:52, , 6F
10/15 21:52, 6F
→
10/15 21:56, , 7F
10/15 21:56, 7F
→
10/15 21:57, , 8F
10/15 21:57, 8F
→
10/15 22:06, , 9F
10/15 22:06, 9F
→
10/15 22:11, , 10F
10/15 22:11, 10F
→
10/15 22:12, , 11F
10/15 22:12, 11F
→
10/15 22:12, , 12F
10/15 22:12, 12F
→
10/15 22:25, , 13F
10/15 22:25, 13F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章