输入一个整数,输出最大值

来源:百度知道 编辑:UC知道 时间:2024/05/09 02:18:49
输入一个整数如123698,输出9,9是最大的。
算法:主要算法就是利用for循环去做,用除法从最高位开始计算,得到最高位的个位数值,然后用另外一个变量去取余,得到除去最高位的数如23698去掉一,然后在依次得到每个位的位数,用for循环避免重复操作,然后每计算一次比较一次大小,如第一次,1和2比较,存2进入一个新设定变量,然后把这个变量和第3个比较,依次,比较到个位,输出最大的个位数,就是9.
不过我的程序有问题,不知道算法有没问题,请高手赐教:
程序:
main()
{
int a,b,k,n,min;
scanf("%d",&a);
if(a>0)
if (a>min)
{for(n=k;k<=n-1;k--)
a=a/n;
b=a%n;
min=a;

}
pirntf("%d",min);
}
谢谢,帮帮小弟吧
这个数是我随便举的例子,也可以是其他整数

基本上一团糟,,从高位取你还要获得数的位数,何苦?
你代码中,,晕,k,min没有赋值,,,for循环少了作用域,,printf写错,,,不堪入目,,,
#include <stdio.h>

void main()
{
int a,b,n = 10,min = 0;
scanf("%d",&a);

if (a>0)
{
for(;a!=0 ;)
{
b=a%n;
a=a/n;
if (b>min)
{
min = b;
}
}
}
printf("%d\n",min);
}

我咋觉得从低位开始比较好呢.
把这个数除以10.取余.得到个位.
然后再取余,得到十位,
依次类推.

你的程序太乱了,很多变量连初值都没有赋,而且for的条件很不清晰,这是我跟你写的程序,你看可以不:
#include<stdio.h>
void main()
{
long n;
int max;
printf("请输入一个数:");
scanf("%ld",&n);
max=n%10;
while(n>0)
{
n=n/10;
if(n%10>max)
max=n%10;
}
printf("该数中的最大值是:%d\n",max);
}