输入一个自然数,输出该自然数的各位数字组成的最大数。

作者&投稿:繁哲 (若有异议请与网页底部的电邮联系)
C++编程:任意输入一个自然数,调用一个自定义的函数输出该自然数的各位数字组成的最大数~

#include
#include
using namespace std;
void main()
{
char a[20];
int i,j,length;
cout<<"输入自然数: ";
gets(a);
length=strlen(a);
for(j=0;j<length-1;j++)
for(i=0;j<length-1-i;i++)
{
int temp;
if(a[i]<a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}//用起泡把数组按从大到小,排序
cout<<"最大数是:"<<endl;
for(i=0;i<length;i++)
{
cout<<a[i];
}
}

你的m只在第1次循环的时候初值是1,第2次循环的时候,是在原来的结果上又乘了若干个10
j=0改为j=0,m=1试试。
或者
for(i=0;i<=num-1;i++)
{for(j=0;j<=num-i-2;j++) m=m*10;
s=s+a[i]*m;
}
改成
for(i=num-1, m=1;i>=0;i--)
{
s=s+a[i]*m;
m=m*10;
}
其中m=1是前面赋过值的,不过这种临时使用的变量还是什么时候用什么时候赋值好些,检查起来容易。

就是输入一个int后,然后将各个位上的数取出来后,才大到小进行排序,最大的作为最高位,最小的作为个位就可以了。

<1> 先计算输入的数是几位的 假设输入的为a 则
weishu=0;
while(a>0)
{
weishu++;
a = a/10;
}
这样可以求出位数。

<2> 求各位上的数
int b[10] ; //假设最多能输入10位数。
int i=0;
while(a>0)
{
b[i] = a%10;
a=a/10;
i++;
}

这样就存储了各位上的数

<3> 然后对 b[10] 进行从小到大的排序 最大的放前面,最小的放后面

<4> 组成最后的数字
int result=0;
for(int j=0;j<weishu;j++)
{
result = result*10+b[j];
}

最后就是输出了

比如你输入1324 数字就有1 3 2 4 然后按从大到小的顺序排列为4321
比如你输入56987 排列为98765


输入一个自然数,若为奇数则输出其平方根,否则输出其立方根,对这个进行...
直接用c++ include <iostream> include <math> if(a%2==0)b=pow(a,0.5);else b=pow(a,1\/3);cout<<b<<endl;return 0;或:核心代码 Scanner s = new Scanner(System.in);double result;while(s.hasNextInt()){ int i = s.nextInt();if(i\/2==1){ result = Math.sqrt(i);}...

怎样编写程序,输入一个自然数,以及需要累加次数,输出各个数字之和 ?
include <stdio.h> include <math.h> void main(){ int a,n,i,j,s=0,t;scanf("%d%d",&a,&n);for(i=0;i<n;i++){ for(j=0,t=0;j<=i;j++)t += a * pow(10,j);s += t;} printf("%d\\n",s);}

任意输入一个自然数(不大于99999999),输出该自然数的各位数字组成的最大...
你的m只在第1次循环的时候初值是1,第2次循环的时候,是在原来的结果上又乘了若干个10 j=0改为j=0,m=1试试。或者 for(i=0;i<=num-1;i++){for(j=0;j<=num-i-2;j++) m=m*10;s=s+a[i]*m;} 改成 for(i=num-1, m=1;i>=0;i--){ s=s+a[i]*m;m=m*10;} ...

怎么用c语言编-输入自然数,然后逆顺序输出,如输入123,输出321
include<stdio.h> include<string.h> main(){ int a[256],i;scanf("%s",a); \/\/输入自然数数组 for(i=strlen(a);i>=0;i--) \/\/循环判断输出(从最后一个开始)printf("%d",a[i]);}

python输入一个自然数,判断它是奇数还是偶数并输出判断结果?
num = int(input())if num % 2 == 1:print("odd")else:print("even")

求用python输入一个三位自然数,计算并输出其百位、十位和个位上的数字...
方法一:print('百位:{},十位:{},个位:{}'.format(*input('请输入一个三位数:')))方法二:i=int(input('请输入一个三位数:'))t=(i\/\/100,i\/\/10%10,i%10)print('百位:{},十位:{},个位:{}'.format(*t))

输入一个自然数,开根号,如果输出的是整数则输出,如果不是整数,则输出去...
根号5的整数部分明显不等于1。你的原意应该是用整数b逐渐逼近n的整数部分,但是为什么循环过程中要让n即使a的平方根每次自减1呢?而且将b作为判断循环的条件不是更好吗?一旦找到b就用break跳出循环就行了呀。而且你怎么保证用户输入的就是自然数呢?我是初学者说得不对的请见凉,个人见解 ...

c语言,输入一个不大于10000自然数,输出它的位数。如输入5876,输出4
include<stdio.h> int main(){ int a,count=0;scanf("%d",&a);while(a){ count++;a\/=10;} printf("%d",count);return 0;} 满意请采纳

python输入一个自然数n,然后计算并输出1到n之间的偶数和,要求用for...
判断是否是偶数然后用循环加法实现,代码如下:n=int(input("Please enter a number:"))tot=0 for i in range(0,n):if i % 2==0:tot=tot+i print(tot)

任意输入一个自然数(设不超过三位),判断是否自守数并输出
int j\/\/计算输入的数是几位的.string v_i=(string)i;(写法不一定对,只是表达意思)int result =i*i;\/\/计算 String v_result = \/\/获取result从个位到第j位的数字 if(判断)输出.当然可能有的方法不需要如此复杂,不过我目前水平就如此了.代码我就不完全贴出来了,程序主要要自己写,哪怕是一个...

杜集区18716485742: C语言:任意输入一个自然数,输出该自然数的各位数字组成的最大数.例如,输入 1593 ,则输出为 9531 . -
昔泡苯妥: #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;...

杜集区18716485742: 任意输入一个4位自然数,调用C 语言函数输出该自然数的各位数字组成的最大数 -
昔泡苯妥:[答案] int main(int argc,char *argv[]){int i=0,j,tmp;int arr[4] = {0};scanf("%d",&j);printf("your input was:%d\n\n",j);while(j){arr[i++] = j%10;j/=10;}for(i = 0;i

杜集区18716485742: C++编程:任意输入一个自然数,调用一个自定义的函数输出该自然数的各位数字组成的最大数 -
昔泡苯妥: #include<iostream>#include<string> using namespace std; void main() { char a[20]; int i,j,length; cout<<"输入自然数: "; gets(a); length=strlen(a); for(j=0;j<length-1;j++) for(i=0;j<length-1-i;i++) { int temp; if(a[i]<a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1...

杜集区18716485742: “输入一个整数,输出它的各位数之和及位数”的C语言程序怎么写? -
昔泡苯妥: int ,j.total; long i, x; scanf("%ld",x); i=x; j=1; total=x%10; while(x>=10) { j++; i=i/10; total+=x%10; } printf("x=%ld位数=%d,各位数之和=%d\n"x,j,total);

杜集区18716485742: l 任意输入一个4位自然数,调用函数输出该自然数的各位数字组成的最大数. -
昔泡苯妥: #include<iostream.h> void main() {int a;cout<<"请输入一个四位数:";cin>>a;{if(a<1000||a>=10000)cout<<"请重新输入!\n";} // cout<<a; int b[4],t, m; //分解四位数,将其存入四元数组 b[0]=a/1000;a=a%1000; b[1]=a/100;a=a%100; ...

杜集区18716485742: 用C语言 输入一个自然数(如4768),重新排列各位数字,输出排列后的最大数(8764) -
昔泡苯妥: ...头文件int n;//接收输入 int a[4]; for(int i=0;i<4;i++) { a[i]=n%10; n/=10; } //排序 int temp; for (int i=0;i<n;i++){ for (int j=i;j<n;j++){ if (a[j]>a[i]){ temp=a[i]; a[i]=a[j]; a[j]=temp;} } } for(int i=0;i<4;i++){ printf(%d,a[i]);}

杜集区18716485742: 从键盘输入任意一个自然数,将其各位上的数字拆分出来.如,输入:9286,输出:6 、8\2\9 QUICKBASIC -
昔泡苯妥: #include #include int main() { char a[30]; int i,l; printf("请输入一整型数字:"); gets(a); printf("数字拆分如下:\n"); l=strlen(a); for(i=l-1;i>=0;i--) printf("%d ",a[i]-'0');//将数字字符转为数字值 printf("\n"); system("pause"); return 0; } 用字串写比较快

杜集区18716485742: 从键盘上输入一个整数,分别输出它的个位数、十位数和百位数. -
昔泡苯妥: main () {int a,b,c,n;printf ("n=");scanf ("%d",&n);if ((x > 99) && (x < 1000)) { /*&&是并且的意思,这个if用来判断输入的是不是三位数*/a = n % 10; /*a是n的百位数,a % b表示a除以b的余数(a,b都是整数)*/b = n / 10 % 10; /*b是n的十位数.因为n是整数,所以n/10的结果是n除以10的商*/c = n / 100; /*c是n的个位数*/printf ("%d\t%d\t%d\n",a,b,c);}getch (); }

杜集区18716485742: c语言求助:输入一个整数,将其的各位数字输出.(不是反序,是顺序输出.) -
昔泡苯妥: 思路就是:把输入的“整数”当做字符串,在输入过程中是无法确定输入的是“整数”还是“字符”,如果需要,再在程序中把“字符”转化为“整数”(这个很简单)…… 如果你还想要代码的话,对不起,为了伟大祖国软件行业,不给~

杜集区18716485742: c语言 组成最大数 -
昔泡苯妥: 就是从大到小排序吧... 【回答补充】 #include "stdio.h" #define N 4 void sort(int x[],int n) {int i,j,p;for(i=0;i<n;i++)for(j=0;j<n-1-i;j++){if(x[j]<x[j+1]){p=x[j];x[j]=x[j+1];x[j+1]=p;}} } void main() { int a[N],i; for(i=0;i<N;i++) scanf("%d",&a[i]); sort(a,N); for(i=0;i<N;i++)printf("%d ",a[i]); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网