첫 번째로, 영어를 유감스럽게 생각하며, 충분히 설명하지 못한다면. 내 코드의 출력을 통해 그 아이디어가 무엇인지 알 수 있기를 바랍니다. 문제는 내가 만든 방식으로 최대 999 (3 자리 숫자)까지만 작동한다는 것입니다. 나는 거기에 얼마나 많은 자릿수가 있는지 신경 쓰지 않고 그냥해야 할 일을하는 루프가 있어야한다고 생각한다.C 프로그램이 반올림에서 증가하는 숫자를 찾아야합니다.
int main(){
int n, m, k, digit1, digit2, digit3, p, a = 0;
do{
printf("Enter m and n (m < n):\n"); scanf("%d %d", &m, &n);
if (m < n) {
break;
}
else printf("\Error - m > n! Try again.\n\n");
} while (a == 0);
printf("Output:\n");
for (k = m; k <= n; k++){
p = k;
do{
digit3 = p % 10; //123 % 10 = 3 13%10 = 3 == p/10 +1
digit1 = p/100; //123/100 = 1
digit2 = (p/10) % 10; // (123 /10) = 12%10 = 2
if (p > 100){
if (digit2 == digit1 + 1 && digit3 == digit2 + 1){
printf("%d ", k);
} break;
}
if (digit3 == ((p/10) + 1)) {
printf("%d ", k);
} break;
p = p/10;
} while (p > 0);
}
getch();
return 0;
}
예 출력 :
Enter m and n (m < n):
1 999
Output:
1 12 23 34 45 56 67 78 89 123 234 345 456 567 678 789
이 출력이 정확하고 프로그램을 수행하는 것입니다. 불행하게도 999 이상에서 작동하도록 루프를 만들 수 없습니다. 사용자가 입력 한 간격으로 각 숫자가 이전보다 1 씩 큰 모든 숫자를 출력해야합니다.
당신의 접근 방식은 대신 배열의 개별 변수를 사용하고 있기 때문에, 확장되지 않습니다. 배열은 여기에 설명되어 있습니다. https://en.wikibooks.org/wiki/C_Programming/Arrays_and_strings –
"내 코드의 결과물로 인해서 무엇에 관한 아이디어를 얻을 수 있기를 바랍니다." 아닙니다. 나는 당신의 문제를 짐작하고 싶지 않다. 유효한 번호는 무엇입니까? 왜 1은 괜찮습니까? 2 또는 3은 아닙니다. 질문을 편집하여 문제를 명확히 진술하십시오. –
유효한 숫자는 12 23과 같이 오름차순 숫자가있는 숫자입니다. 123 등 –