2016-06-02 4 views
-2

У меня есть массив символов, и я хочу создать цикл, где, если следующий символ массива представляет собой цифру, цикл переходит к следующему символу, а если нет, я печатаю последний цифра. Могу ли я это сделать?Условие для цикла в c

int h; 
char array[20]; 

for (h=0;isdigit(array[h]);h++) 
    h=h+1; 
if(!isdigit(array[h])) 
printf ("%d",h-1) 

До сих пор единственные условия, я использовал с для цикла являются «числовые» условия, такие как «ч < = 10».

Я программирования с С.

+3

Итак, вы показали код. Скомпилирует ли он? Это работает? Если нет, каковы ожидаемые и фактические результаты? –

+1

Вы начинаете с поиска 'array', а затем переключаетесь на выражение' expression' (которое не было объявлено). Да ?? – abelenky

+0

Да, извините, я хотел поставить массив, а не выражение. Я не знаю, если он компилируется, мне интересно, как в качестве условия в цикле for я могу положить isdigit (array [h] – codingnight

ответ

2

Вот мой анализ кода:

int h; 
char array[20]; 

for (h=0;isdigit(array[h]);h++) 
    h=h+1; 
if(!isdigit(expression[h]))  // "expression" is not declared. 
    printf ("%d",h-1)   // Missing Semicolon 

Что касается того, что вы можете положить в средней части для цикла:
Anything который будет оценивать значение True/False.
И в C, 0 совпадает с False, а любое другое число - True.
isdigit возвращает номер, обозначающий true/false, поэтому он работает нормально.


Вот что я думаю, что вы имели в виду:

int h; 
char array[20]; 

for (h=0;isdigit(array[h]);h++) /**/; // While you have digits, go to the next character. 

// Now that the loop is over: 
printf ("%c",array[h-1]); // Print the previous character 
+0

Чтобы предотвратить запредельные состояния, условие в цикле должно быть 'isdigit (array [h]) && h <20'. – cwschmidt

+0

Предполагая, что он проверяет, что он не исчерпывает границы массива, не должен быть окончательным 'if (! isdigit (array [h]))'? цикл попадает в конец массива, а затем печатает последний элемент массива, когда он не является цифрой? – Taelsin

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