如何在 c 中的最后一个数字后停止打印逗号和 space
How to stop printing comma and space after last digit in c
这是我写的程序:
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$
如何让逗号停在最后一位数字之前?
有很多方法可以解决您的问题。您可以在除第一个输出之外的每个输出之前打印一个分隔符。
另请注意,使用 '0'
和 '9'
而不是硬编码 ASCII 值(例如 48
...
会更具可读性
这是修改后的版本:
#include <stdio.h>
int main() {
int d1, d2, n = 0;
for (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;
}
这是使用分隔符字符串的替代方法:
#include <stdio.h>
int main() {
int d1, d2;
const char *sep = "";
for (d1 = '0'; d1 <= '9'; d1++) {
for (d2 = d1 + 1; d2 <= '9'; d2++) {
fputs(sep, stdout);
sep = ", ";
putchar(d1);
putchar(d2);
}
}
putchar('\n');
return 0;
}
做@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);
}
这是我写的程序:
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$
如何让逗号停在最后一位数字之前?
有很多方法可以解决您的问题。您可以在除第一个输出之外的每个输出之前打印一个分隔符。
另请注意,使用 '0'
和 '9'
而不是硬编码 ASCII 值(例如 48
...
这是修改后的版本:
#include <stdio.h>
int main() {
int d1, d2, n = 0;
for (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;
}
这是使用分隔符字符串的替代方法:
#include <stdio.h>
int main() {
int d1, d2;
const char *sep = "";
for (d1 = '0'; d1 <= '9'; d1++) {
for (d2 = d1 + 1; d2 <= '9'; d2++) {
fputs(sep, stdout);
sep = ", ";
putchar(d1);
putchar(d2);
}
}
putchar('\n');
return 0;
}
做@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);
}