问题如上图所示
本人想通过用C语言将输入数字的每一位拿出来 进行前后比较
比如 先拿个位 并在拿出十位 将个位与十位进行比较 若十位大于个位 则继续进行比较 大概思路如上
写代码时出现了问题
最后的for循环只会运行一次 并且输出的位数也不对 不是0就是1
代码如下
恳求帮忙改一下
谢谢
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int chengji( int b)
{
int sum = 1;
for (int c = 1; c <= b; c++)
{
sum = sum * 10;
}
return sum;
}
int main()
{
int a;
scanf("%d", &a);
int n = 0;
int xiaowei = 0;
int dawei;
for (; a != 0;)
{
n++;
a = a / 10;
}
xiaowei= a % 10;
for (int b = 1; b <= n-1; b++)
{
int v = chengji(b);
dawei = (a / v) % 10;
if (b = n-1)
{
dawei = a / (10 ^ b);
}
if (dawei>=xiaowei)
{
xiaowei= dawei;
if(b = n-1)
{
printf("YES");
break;
}
}
else
{
printf("NO");
break;
}
}
return 0;
}