2014-11-11 2 views
0
int main(){ 
    int 
     i, 
     number[50], 
     num; 
    printf("Please enter a number:\n"); 
    scanf("%d", &num); 
    for (i = 0; i < num; i++){ 
    printf("%d: ", i+1); 
    scanf("%d", &number[i]); 
    } 

    printf("You've entered: "); 
    for (i = 0; i < num; i++){ 
     printf("%d, ", number[i]); 

    } 
    } 

Если я печатаю в 5 номеров RANDON как ниже, я не могу показаться, чтобы получить этот результат:Как я могу избавиться от последней запятой?

«Пожалуйста, введите номер: Вы вошли: 1, 2, 32, 44 и 45 "

+2

Печать первой, а затем, если re больше, напечатайте ",", затем номер –

+2

Выясните, как бы вы сделали это на листе бумаги и коде, который. Это первое число, поэтому мне не нужна запятая. Это второе число, поэтому мне нужна запятая. это последнее число, поэтому мне нужно «и» вместо запятой ... – John3136

+0

Получаю. Но как узнать, когда цикл достигнет последнего номера? – UserFriendly

ответ

1
printf("You've entered: "); 
for (i = 0; i < num; i++){ 
    if(num > 1 && i == num-1) 
     printf(" and "); 
    else if(i) 
     printf(", "); 
    printf("%d", number[i]); 
} 
printf("\n"); 
+0

Спасибо за ваш ответ. Но я не знаю, где положить '\ n', когда я набираю 2 числа. – UserFriendly

+0

@UserFriendly Положите 'printf (" \ n ");' после цикла for. – BLUEPIXY

+0

Ничего себе, спасибо. Как я мог этого не знать? ~ _ ~ – UserFriendly

0
printf("You've entered: "); 
    for (i = 0; i < num; i++){ 
     printf("%d%s", number[i], (i == num-1) ? "" : ","); 

    } 
+0

меняет ваш ',' на ':' то это хороший ответ! – Rizier123

1

Вы можете редактировать ваш окончательный цикл, как показано ниже:

printf("You've entered: "); 
for(i=0;i<num-2;i++) 
    printf("%d",number[i]); 
printf("%d and %d\n",number[i],number[i+1]); 
+0

Спасибо за ваш ответ. если я хочу запросить у пользователя порядковые номера: '1-й номер:' '2-й номер:' '3-й номер:' '..', какой может быть правильный подход? – UserFriendly

+0

Предполагаю, что вы имеете в виду 1-й номер-23, 2-й номер -22 и т. Д. На выходе .. тогда вам просто нужно изменить цикл for и инструкцию printf: for loop: for (i = 0; i

+0

Если вы очень подробно указываете, как вызывается вывод, как в 1-м, а не в 1, то используйте регистр-переключатель внутри цикла for. Поэтому для каждого входа используйте переключатель i i.e switch (i) {case 1: printf («1-й номер:% d:», номер [i]) break; ..... и т. д. для длины или количества элементов массива} –

Смежные вопросы