
C语言:任意输入一个自然数,输出该自然数的各位数字组成的最大数。例如,输入 1593 ,则输出为 9531 。
输出:各位数字组成的最大数
这是我的程序,检验结果出现无效内存引用,帮我看看吧~
#include <stdio.h>
#define N 100
main ()
{
char a[N];
int i,j,k;
scanf("%s",a);
for(i=0;a[i]!=0;i++)
for(k=i+1;a[k]!=0;k++)
if(a[i]<a[k])
{
j=a[i];
a[i]=a[k];
a[k]=j;
}
puts(a);
} 展开
#include"stdio.h"
intmain(intargc,char**argv)
{
charch;
intarr[10]={0};ﻩﻩ//存储各个数字出现的次数,初始化为0
//统计各个数字出现的次数
while(1)
{
ch=getchar();
if(ch=='\n')
{
break;
}
arr[ch-'0']++;
}
inti,j;
//输出各个数字出现的次数
for(i=9;i>=0;i--)
{
printf("数字%d出现%d次.\n",i,arr[i]);
}
//输出这些数组成的最大的数
printf("\n组成的最大的数:\n");
for(i=9;i>=0;i--)
{
for(j=arr[i];j>0;j--)
printf("%d",i);
}
printf("\n");
//输出这些数组成的最小的数,注意:0不输出
printf("\n组成的最小的数:\n");
for(i=1;i<=9;i++)
{
for(j=arr[i];j>0;j--)
printf("%d",i);
}
printf("\n");
return0;
}
扩展资料:
while使用方法:
示例C++
int a=NULL;
while(a<10)
{
a++;//自加
if(a>5)//不等while退出循环,直接判断循环
{
break;//跳出循环
}
}
结果:结束后a的值为6。
Javascript
下面的例子定义了一个循环程序,这个循环程序的参数i的起始值为0。该程序会反复运行,直到i大于10为止。i的步进值为1。
<html>
<body>
<script type="text/javascript">
var i=0
while(i<=10)
{document.write("The number is"+i);
document.write("<br/>");
i=i+1;}
</script>
</body>
</html>
结果
The number is0
The number is1
The number is2
The number is3
The number is4
The number is5
The number is6
The number is7
The number is8
The number is9
The number is10
#include <stdio.h>
#define N 100
main ()
{
char a[N]={'\0'}; //初始化试一下,我在vc6.0没报错
int i,j,k;
scanf("%s",a);
for(i=0;a[i]!=0;i++)
for(k=i+1;a[k]!=0;k++)
if(a[i]<a[k])
{
j=a[i];
a[i]=a[k];
a[k]=j;
}
puts(a);
}