当前位置: 代码迷 >> C语言 >> [求助]我有一道关于数字的编程题
  详细解决方案

[求助]我有一道关于数字的编程题

热度:131   发布时间:2007-07-07 19:09:25.0
回复:(酒肉弥勒佛)这个算法我试了下,小于1s,可以...

太谢谢你了,网上还是热心人多啊
还想请教一下,你的算法思路是什么样的
还有atoi是什么函数


----------------解决方案--------------------------------------------------------
回复:(酒肉弥勒佛)这个算法我试了下,小于1s,可以...
给你个321就错了
----------------解决方案--------------------------------------------------------

修改下,应该能解决321问题了吧

int main()
{
char num[8],c,temp[2];
int count=0,max=0,s=0,i;

while(1)
{
c=getchar();
if((c=='\n') || (count>6))
break;

num[count]=c;

temp[0]=c;
temp[1]='\0';
if(atoi(temp)>=max)
{
max=atoi(temp);
s=count;
}

count++;
}

num[count]='\0';

printf("num:%s\n",num);

if(s>0)
for(i=0;i<=s;i++)
{
if((num[s]-1)>num[i])
{
c=num[i];
num[i]=(num[s]-1);
num[s]=(c-1);
break;
}
}


printf("new num:%s\n",num);
}

[此贴子已经被作者于2007-7-7 20:54:57编辑过]


----------------解决方案--------------------------------------------------------
以下是引用oujifei在2007-7-7 19:09:25的发言:

太谢谢你了,网上还是热心人多啊
还想请教一下,你的算法思路是什么样的
还有atoi是什么函数

思路就是:先找到最大的数,判断位置,不是第一个,就减一,然后和他前面的高位比较,如果比他小,就交换
atoi是字符转变为整型


----------------解决方案--------------------------------------------------------
我最头疼的就是算法与数据结构了
----------------解决方案--------------------------------------------------------
静夜嘶
----------------解决方案--------------------------------------------------------
以下是引用system32在2007-7-8 3:08:39的发言:
静夜嘶

斑竹怎么了?


----------------解决方案--------------------------------------------------------

新手适一适


----------------解决方案--------------------------------------------------------
  相关解决方案