c++要求输入一个三位数,将个十百重新排列,得到最大数和最小数,相减的差,再重新排列,直到得到固定值

#include<stdio.h>
main()
{
int a,b,c,m,n,max,min,zhong,i;
printf("请输入一个三位数:");
scanf("%d",&m);
printf("数字为%d\n",m);
do
{c=m%10;
b=(m%100-c)/10;
a=(m-c-b*10)/100;
max=(a>b)?a:b;
max=(max>c)?max:c;
min=(a<b)?a:b;
min=(min<c)?min:c;

zhong=a;
a=m;
if (zhong==max||zhong==min)
zhong=b;
if (zhong==max||zhong==min)
zhong=c;
m=max*100+zhong*10+min;
n=min*100+zhong*10+max;
printf("%d",m);
printf("-");
printf("%d",n);
printf("=");
printf("%d\n",m-n);}

while(m);

}
我想问下得到固定值后怎么跳出循环
该问题已自己解决

#include<stdio.h>
main()
{
int a,b,c,m,n,max,min,zhong,i;
printf("请输入一个三位数:");
scanf("%d",&m);
printf("数字为%d\n",m);
do
{c=m%10;
b=(m%100-c)/10;
a=(m-c-b*10)/100;
max=(a>b)?a:b;
max=(max>c)?max:c;
min=(a<b)?a:b;
min=(min<c)?min:c;

zhong=a;
a=m;
if (zhong==max||zhong==min)
zhong=b;
if (zhong==max||zhong==min)
zhong=c;
m=max*100+zhong*10+min;
n=min*100+zhong*10+max;
printf("%d",m);
printf("-");
printf("%d",n);
printf("=");
printf("%d\n",m-n);
m=m-n;
}

while(m!=a);

}

import java.util.*;

public class Test{
    public static void main(String[] args){
        //定义接收用户输入的对象
        Scanner input=new Scanner(System.in);
        //接收用户输入
        try{
            System.out.print("请输入一个3位数:");
            int num=input.nextInt();
            if(num>=100 && num<=999){    
                    //计算各位数
                    int get=num%10;
                    //计算得到十位数
                    int shi=num%100/10;
                    //计算得到百位数
                     int bai=num/100;
                       System.out.println(num+"的各位数是:"+ge+"\t十位数是:"+shi+"百位数是:"+bai);
            }else{
                 System.out.println("要求输入的是一个3位的数字,输入不准确!");
            }
        }catch(Exception ex){
            System.out.println("输入的不是数字:"+ex.getMessage());
        }
    }
}

追问

这个不是c++吧

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-03-20
实在不行,就在不超时的情况下,设定一个深度。比如某个值连续出现1000次,我们就退出循环,假设它就是那个固定值。追问

怎么做

c++要求输入一个三位数,将个十百重新排列,得到最大数和最小数,相减的差...
\/\/计算得到百位数 int bai=num\/100; System.out.println(num+"的各位数是:"+ge+"\\t十位数是:"+shi+"百位数是:"+bai); }else{ System.out.println("要求输入的是一个3位的数字,输入不准确!"); } }catch(Exception ex){ System.out.println("输入的不是数字:...

输出一个三位数的整数,编写一个程序,将它的十位数和百位数互换位置?
result = hundred * 100 + tens * 10 + ones print("交换十位数和百位数后的结果是:", result)程序的基本思路是先将输入的三位数拆分成百位、十位、个位三个数字,然后交换百位和十位数字,最后将三个数字组合成一个新的三位数并输出结果。

...输入一个3位的正整数,输出它的百位数,十位数和个位数,并且计算它的...
void main() { int a, b, c, d;printf("请输入一个三位数: ");scanf("%d", &a);b = a \/ 100; \/\/ 百位 c = (a - b * 100) \/ 10; \/\/ 十位 d = a % 10; \/\/ 个位 printf("百位:%d, 十位:%d, 个位:%d\\n", b, c, d);printf("它们的和是:%d\\n", b +...

...输入一个3位的正整数,输出它的百位数,十位数和个位数,并且计算它的...
voidmain(){inta;intb,c,d;\/\/各个位数上的数字printf(请输入一个三位数:);scanf(%d,a);b=a\/100;\/\/百位c=(a-b*100)\/10;\/\/十位d=a%10;\/\/个位printf(百位:%d,十位:%d,个位%d\\n,b,c,d);printf(它们的和是:%d\\n,b+c+d);} 世界上第一种计算机高级语言是诞生于1954年的FO...

用c++做一个三位数,个位,十位,百位数字之和是怎么做的?
可以利用除法和取模运算来获取三位数中的百位、十位和个位数字,然后将它们相加得到数字之和。以下是一个 C++ 示例代码:include <iostream> using namespace std;int main() { int number, digit, sum = ;cout << "请输入一个三位数:";cin >> number;\/\/ 获取百位数字 digit = number \/ ...

c++求一个三位数的百位十位个位
include <iostream>using namespace std;int main() { int a,b,c,x; cout<<"请输入一个三位数:"<<endl; cin>>x; a=x\/100; b=(x\/10)%10; c=x%10; cout<<"百位数:"<<a<<endl; cout<<"十位数:"<<b<<endl; cout<<"个位数:"<<c<<endl; ...

c++作业,假设m是一个三位数,编写程序输出由m的个,十,百位反序而成的三...
\/\/千位 int decade=(b\/10)%10; \/\/十位 cout<<"个位:"<<unit<<" 十位:"<<decade<<" 百位:"<<hundreds<<" 千位:"<<kilobit<<endl;int result=kilobit*1000+hundreds*100+decade*10+unit; \/\/合成后的数字 cout<<"合成的数是: "<<result<<endl;} ...

用c++做一个三位数,个位,十位,百位数字之和是怎么做的?
printf("请输入3位正整数:");scanf("%d",&N);if(N < 100 || N >999){ printf("请输入有效的3位正整数\\n");} else { int ge,shi,bai;\/\/个位 十位 百位 ge = N % 10;N = N\/10;shi = N % 10;N = N\/10;bai = N % 10;int Y = ge +shi + bai;printf("个位十...

假设m是一个三位数,则将m的各位、十位、百位反序组成一个新的三位数并...
算法可以多个。以fortran代码为例(比较容易阅读)。算法一。求出各位,倒序排列计算新三位数。算法二。将三位数写入字符串变量,再读出各位数字,倒序输出。算法三。循环求出各位数字,同步计算出新三位数。这是个通用性强的算法,可以推广到更多位数。输出。三个算法的输出效果雷同。见下图。

随意输入一个三位数,要求输出的为:百位,十位,个位。
include <stdio.h> int main(){ int a;printf("请输入一个三位数:\\n");scanf("%d", &a);printf("百位:%d\\n", a\/100%10);printf("十位:%d\\n", a\/10%10);printf("个位:%d\\n", a\/1%10);return 0;}

相似回答