C语言的题目,高手来哈,谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/22 17:23:59
输入一个3位数,输出其中最大的那一位数。注意合法性的判断
例如:输入756 输出7
输入297 输出9
输入12 输出ERROR
输入1234 输出ERROR

#include <stdio.h>
#include <math.h>

//获取指定整数的第nNo位数,例如GetNumber(12345, 0)为获取12345的第0位数(即个位),返回为5
//x为指定整数,nNo为x的第nNo位(个位为0,十位为1,百位为2,...依此类推)
int GetNumber(long x, int nNo)
{
return (int)(x / (long)pow(10,nNo) %10); //pow(a,b)函数为计算a的b次方,声明在<math.h>中
}

//获取整数x的位数,一位数,二位数,。。。
int GetDigits(long x)
{
int nCount = 0;
while(x > 0)
{
x /= 10;
nCount++;
}
return nCount;
}

void main(void)
{
int i,n;
int nNumber=0;

long lNum;

printf("请输入一个正整数:");
scanf("%ld",&lNum);

if(GetDigits(lNum) != 3)
{
printf("ERROR\n");
return;
}

for(int i = 0; i < 3; i++)
{
n = GetNumber(lNum,i);
if(n > nNumber)
nNumber = n;
}

printf("最大的数字为:%d\n",nNumber);
}

main