這是我寫的程式:
int main(void)
{
int d1, d2;
d1 = 48;
while (d1 < 58)
{
d2 = d1 1;
while (d2 < 58)
{
putchar(d1);
putchar(d2);
putchar(',');
putchar(' ');
d2 ;
}
d1 ;
}
putchar(10);
return (0);
}
程式的輸出如下:
01, 02, 03, 04, 05, 06, 07, 08, 09, 12, 13, 14, 15, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 34, 35, 36, 37, 38, 39, 45, 46, 47, 48, 49, 56, 57, 58, 59, 67, 68, 69, 78, 79, 89, $
我想要這樣的輸出:
01, 02, 03, 04, 05, 06, 07, 08, 09, 12, 13, 14, 15, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 34, 35, 36, 37, 38, 39, 45, 46, 47, 48, 49, 56, 57, 58, 59, 67, 68, 69, 78, 79, 89$
如何讓逗號停在最后一位數字之前?
uj5u.com熱心網友回復:
一種不同的方式來做@chqrlie所做的事情,即在每個字符之前列印分隔符。
在第一個字符之前,分隔符是空字符,對于后續字符,分隔符是','和' '。
執行:
int main(void)
{
int d1, d2;
int sep1 = 0;
int sep2 = 0;
d1 = 48;
while (d1 < 58)
{
d2 = d1 1;
while (d2 < 58)
{
putchar(sep1);
putchar(sep2);
putchar(d1);
putchar(d2);
d2 ;
sep1 = ',';
sep2 = ' ';
}
d1 ;
}
putchar(10);
return (0);
}
uj5u.com熱心網友回復:
有很多方法可以解決您的問題。除了第一個輸出之外,您可以在每個輸出之前列印一個分隔符。
另請注意,使用它會更具可讀性,'0'而'9'不是硬編碼 ASCII 值,例如48...
這是一個修改后的版本:
#include <stdio.h>
int main(void) {
int d1, d2, n;
for (n = 0, d1 = '0'; d1 <= '9'; d1 ) {
for (d2 = d1 1; d2 <= '9'; d2 , n ) {
if (n > 0) {
putchar(',');
putchar(' ');
}
putchar(d1);
putchar(d2);
}
}
putchar('\n');
return 0;
}
uj5u.com熱心網友回復:
一種簡單的方法是避免在最后一次迭代時列印逗號/空格:
#include <stdio.h>
int main(void)
{
int d1, d2;
d1 = 48;
while (d1 < 58)
{
d2 = d1 1;
while (d2 < 58)
{
putchar(d1);
putchar(d2);
if (d1 < (58 - 2))
{
putchar(',');
putchar(' ');
}
d2 ;
}
d1 ;
}
putchar(10);
return (0);
}
輸出:
$ gcc main.c && ./a.out
01, 02, 03, 04, 05, 06, 07, 08, 09, 12, 13, 14, 15, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 34, 35, 36, 37, 38, 39, 45, 46, 47, 48, 49, 56, 57, 58, 59, 67, 68, 69, 78, 79, 89
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/363022.html
