[英]Improvement list the odd numbers code in C language
void main() {
int low, high, odds = 0;
do {
printf("Please enter a number:");
rewind(stdin);
scanf("%d", &low);
} while (low <= 0);
do {
printf("Please enter the second number:");
rewind(stdin);
scanf("%d", &high);
} while (high < 2 * low);
printf("The odd numbers between %d and %d are: ", low, high);
for (odds = low;odds <= high;odds++) {
if (odds % 2 != 0)
{
printf(" %d", odds);
}
}
printf(".\n");
system("pause"); }
我輸入“1”代表“低”變量,而“10”代表“高”變量,然后它顯示結果:“1 到 10 之間的奇數是 1 3 5 7 9。”那么,我怎么能通過打印輸出改進或更改我的代碼:“奇數..... 1,3,5,7,9。”?
添加逗號
int first = 1;
for (odds = low;odds <= high;odds++) {
if (odds % 2 != 0)
{
if(first){ // to prevent comma before first number
first = 0;
} else {
printf("%s",",");
}
printf(" %d", odds);
}
}
本來可以
printf("%c", ',');
. 即單個字符,但我使用 %s 以防萬一您想添加更多填充
奇數的一個好處是您可以確切地知道它們在哪里。 而不是遍歷所有值並檢查每個值是否為奇數,只需找到第一個奇數並增加 2:
#include <stdio.h>
#include <stdlib.h>
int
main(int argc, char **argv)
{
int low = argc > 1 ? strtol(argv[1], NULL, 10) : 1;
int high = argc > 2 ? strtol(argv[2], NULL, 10) : 10;
printf("The odd numbers between %d and %d are: ", low, high);
if( low % 2 == 0 ){
low += 1;
}
for( int odd = low; odd <= high; odd += 2 ){
printf("%s%d", odd == low ? "" : ", ", odd);
}
putchar('.');
putchar('\n');
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.