输入一个数,求这个数重新排列最大数和最小数之差

#include <stdio.h>
#include <string.h>
int next_num(int x)
{
    char s[10];
    int a,b,n;
    sprintf(s,"%d",x);
    n=strlen(s);
    for (int i=0; i<n; i++) {
        for (int j=i; j<n; j++) {
            if (s[i]>s[j]) {
                char t=s[i];
                s[i]=s[j];
                s[j]=t;
            }
        }
    }
    sscanf(s, "%d",&a);
    printf("%d",a);
    for(int i=0;i<n/2;i++)
    {
        char t = s[i];
        s[i]= s[n-1-i];
        s[n-1-i]= t;
    }
    sscanf(s, "%d",&b);
    printf("%d",b);

    return b-a;

    printf("%d",b-a);

}

int main()
{
    //int x;
    //scanf("%d",&x);
    printf("%d",next_num(1243));
}
sprintf(s,"%d",x); 的目的数将数字x转换成字符串s
sscanf(s, "%d",&b); 目的是将字符s转换成数字b
				
时间: 2024-11-05 22:53:52

输入一个数,求这个数重新排列最大数和最小数之差的相关文章

10.输入一个数,求这个数的阶乘

(1)运用循环: #include<iostream>using namespace std;int JieCheng(int); int main(){    int n;    cout<<"please input an number: "<<endl;    cin>>n;    cout<<JieCheng(n);} int JieCheng(int n){    int m=1;    for(int i=1;i&

C语言:输入一个数,输出比这个数小的所有素数,并求出个数。

//C语言:输入一个数,输出比这个数小的所有素数,并求出个数. 1 #include<conio.h> 2 #include<stdio.h> 3 #include<stdlib.h> 4 #define MAX 100 5 int fun(int lim, int aa[MAX]) 6 { 7 int i, j,k=0; 8 for (i = 2; i <= lim; i++)//罗列每个数 9 { 10 for (j = 2; j < i; j++)//

简单代码 //输入三个数求最大值.

static void Main(){  //输入三个数求最大值.    string answar = "y";  while (answar=="y"||answar=="Y")  {    int x,y,z,max;   Console.WriteLine("请输入第一个数:");   x = int.Parse(Console.ReadLine());   Console.WriteLine("请输入第二个

写一个方法,求两个数的最大公约数和最小公倍数。

package homework0702; /* * 最大公约数 利用辗转相除法求解两个正整数的最大公约数 在循环中,只要除数不等于0,用较大的数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环较小的数,如此循环直到较小的数值为0,返回较大的数.即为最大公约数. 辗转相除法(欧几里得算法) 定理:两个整数的最大公约数等于其中较小的那个数和两数的相除余数的最大公约数.最大公约数(greatest common divisor)缩写为gcd. 最小公倍数 最小公倍数 = (a

求两个数的最大公约数和最小公倍数 C语言

C程序设计第八章的第一道题目,求两个数的最大公约数和最小公倍数.需要注意一下几点: 1.最大公约数和最小公倍数间的关系: 设两个数是a,b最大公约数是p,最小公倍数是q 那么有这样的关系:ab=pq 所以q=ab/p.2.任意整数和0的公约数是该整数的所有约数,所以它们的最大公约数为该整数本身.3.碾转相除法:被除数%除数=余数,如果余数不为0,就让原来的除数做为被除数,余数作为除数,再进行运算 被除数%除数=余数,直到得到的余数为0为止,此时的除数就是最大公约数. #include <stdi

c语言:求两个数的最大公约数。

求两个数的最大公约数. 程序: #include <stdio.h> int main() { int num1, num2, t; printf("请输入两个正整数:"); scanf("%d%d",&num1, &num2);//7,8 while (t = num1%num2)//7           1        0,循环结束 { num1 = num2;     //8           7 num2 = t;     

C语言--求两个数的最大公约数

问题: 求两个数的最大公约数 #include<stdio.h> #include<math.h>  main() { int a,b,c,i,j; printf("请输入三个数(数以逗号隔开):\n"); int arr[3]; int t; scanf_s("%d,%d,%d", &a,&b,&c); arr[0] = a;  arr[1] = b;  arr[2] = c; for (j = 0; j < 

C语言之函数调用07—求4个数的最大公约数和最小公倍数

//函数调用 /* ========================================================== 题目:求4个数的最大公约数和最小公倍数. ========================================================== */ #include<stdio.h> long gys(long m,long n) { int t,r; if(m<n) {t=m;m=n;n=t;} while((r=m%n)!=0)

求n个数的最小公倍数(数值范围的控制)

Description 求n个数的最小公倍数. INPUT 输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数. OUTPUT 为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行.你可以假设最后的输出是一个32位的整数. SAMPLE INPUT 2 4 6 3 2 5 7 SAMPLE OUTPUT 12 70 解题心得: 本来是很简单的题的,可是由于没有适当的控制算法,导致结果溢出. AC代码: 1 #include<stdio.h> 2 long int