2010-03-16 21 views
1

我第一年的計算課程中的作業說我的程序應讀取一個條形碼號碼,然後顯示由連字符分隔的相同的13位數字條形碼號碼。例如,9300675016902應該看起來像930-067501-690-1。格式化連字符之間的條形碼 - 作業問題

的限制,說我不能使用以下命令:

無陣列 無弦 沒有的功能。

在這方面的任何方向?

到目前爲止,我有:

part1 = barcode/10000000000; 

這給我的前三位,而這:

part4 = barcode%10; 

這給了我最後一個數字。

在此先感謝!

+1

你是在正確的軌道上...繼續分割....用適當的單位.... – t0mm13b 2010-03-16 14:01:46

+0

你應該澄清限制。沒有函數,你實際上不能輸出任何東西。 – Turtle 2010-03-16 16:30:29

回答

1

嘗試:

long p1 = n/10000000000; 
    long p2 = n%100000000000/10000; 
    long p3 = n%10000/10; 
    long p4 = n%10; 
    printf("%03ld-%06ld-%03ld-%01ld\n",p1,p2,p3,p4); 
+0

嗯,雖然使用字符串。從字面上看,他應該把每個數字加48來轉換成ASCII碼。 – 2010-03-16 14:02:45

+0

更好的是,他應該使用'0'而不是48來轉換爲ASCII。對於我們中的一些人來說,ASCII表更容易以十六進制記住而不是十進制(0x30 =='0'== 48)。 – 2010-03-16 18:30:54

-2

我會給你一個線索,而不直接回答你的功課。

口罩。

+0

你如何建議使用位掩碼提取十進制數字? – qrdl 2010-03-16 14:12:46

+0

條形碼讀取爲ASCII文本,因此可用字符串形式提供。每個字符一個字節。 如果條碼已經轉換成數字,那麼這是另一回事。 – ChrisBD 2010-03-23 14:03:00

0

如果你確實不能使用字符串,你將需要做的是去各數字之間進行輪流使用putchar('0' + x);其中x是當前數字..

+0

+1使用'0'而不是其數字等值。 – 2010-03-16 18:31:34