我有一个程序,我在其中输入整数,直到输入非整数的东西。代码需要打印满足以下条件的整数:
integer "abcde": "a > b, b < c, c > d, d < e" or "a < b, b > c, c < d, d > e"
example: 343, 4624, 6231209
我写过这个,它适用于大多数整数,但不知何故它对一些人来说不起作用。
#include <stdio.h>
int main()
{
int a;
while (scanf("%d", &a))
{
int a1 = a;
int cifra = 0, cifra1 = 0, cifra2 = 0;
while (a1 > 0)
{
cifra = a1 % 10;
cifra1 = (a1 / 10) % 10;
cifra2 = (a1 / 100) % 10;
a1 = a1 / 10;
if (cifra == cifra1 || cifra1 == cifra2)
{
break;
}
if ((cifra < cifra1 && cifra1 > cifra2) || (cifra > cifra1 && cifra1 < cifra2)) {
printf("%d\n", a);
break;
}
else
{
break;
}
}
}
return 0;
}
答案 0 :(得分:0)
自己解决了
#include <stdio.h>
int main()
{
int a;
int cifra = 0, cifra1 = 0, cifra2 = 0;
int a1;
while(scanf("%d", &a))
{
int a1 = a;
while(a1 > 0){
if(a1 <= 9)
{
break;
}
cifra = a1 % 10;
cifra1 = (a1 / 10) % 10;
cifra2 = (a1 / 100) % 10;
if((cifra > cifra1 || cifra1 > cifra)&&cifra2 == 0)
{
printf("%d\n", a);
break;
}
if((cifra < cifra1&&cifra1 > cifra2) || (cifra > cifra1&&cifra1 < cifra2))
{
a1 = a1 / 10;;
}
else
{
break;
}
}
}
return 0;
}