用c语言解决输入一个四位数,求由这四个数字组成的最大数与最小数字之差
答案:5 悬赏:60 手机版
解决时间 2021-04-04 14:37
- 提问者网友:爱了却不能说
- 2021-04-04 09:04
用c语言解决输入一个四位数,求由这四个数字组成的最大数与最小数字之差
最佳答案
- 五星知识达人网友:詩光轨車
- 2021-04-04 09:21
#include "stdio.h"
#include
#include
int main(int argc,char *argv[]){
int n,i,j;
char a[5];
printf("Please enter n(int 0
n=");
if(scanf("%d",&n)!=1 || n<1 || n>9999){
printf("Input error, exit...
");
return 0;
}
itoa(n,a,10);
for(i=0;i<4;i++){
for(n=i,j=n+1;j<4;j++)
if(a[n] n=j;
if(n-i)
j=a[n],a[n]=a[i],a[i]=j;
}
i=atoi(a);
j=atoi(strrev(a));
printf("%d(max) - %d(min) = %d
",i,j,i-j);
return 0;
}
#include
#include
int main(int argc,char *argv[]){
int n,i,j;
char a[5];
printf("Please enter n(int 0
if(scanf("%d",&n)!=1 || n<1 || n>9999){
printf("Input error, exit...
");
return 0;
}
itoa(n,a,10);
for(i=0;i<4;i++){
for(n=i,j=n+1;j<4;j++)
if(a[n] n=j;
if(n-i)
j=a[n],a[n]=a[i],a[i]=j;
}
i=atoi(a);
j=atoi(strrev(a));
printf("%d(max) - %d(min) = %d
",i,j,i-j);
return 0;
}
全部回答
- 1楼网友:逐風
- 2021-04-04 13:00
可以用排序的方法:
#include
int jx(int *a);//降序排列 得最大值
int sx(int *a);//升序排列 得最小值
int main()
{
int a[4],i,max,min;
char c[5];
printf("输入4位数字:");
scanf("%s",c);
for(i=0;i<4;i++)
a[i]=c[i]-'0';
max=jx(a);
min=sx(a);
printf("四位数%s组成的最大数字%d与最小数字%d的差为:%d",c,max,min,max-min);
return 0;
}
int jx(int *a)//降序排列 得最大值
{
int i,j,aSave,num=0;
for(i=0;i<4;i++)
for(j=i+1;j<4;j++)
{
if(a[i] {
aSave=a[i];
a[i]=a[j];
a[j]=aSave;
}
}
num=a[0]*1000+a[1]*100+a[2]*10+a[3];
return num;
}
int sx(int *a)//升序排列 得最小值
{
int i,j,aSave,num=0;
for(i=0;i<4;i++)
for(j=i+1;j<4;j++)
{
if(a[i]>a[j])
{
aSave=a[i];
a[i]=a[j];
a[j]=aSave;
}
}
num=a[0]*1000+a[1]*100+a[2]*10+a[3];
return num;
}
- 2楼网友:酒者煙囻
- 2021-04-04 11:22
#include
//小到大
void BubbleSort1(int* pData, int count)
{
int temp;
for (int i = 1; i < count; i++)
{
for (int j = count - 1; j >= i; j--)
{
if (pData[j] < pData[j - 1])
{
temp = pData[j - 1];
pData[j - 1] = pData[j];
pData[j] = temp;
}
}
}
}
//大到小
void BubbleSort2(int* pData, int count)
{
int temp;
for (int i = 1; i < count; i++)
{
for (int j = count - 1; j >= i; j--)
{
if (pData[j] > pData[j - 1])
{
temp = pData[j - 1];
pData[j - 1] = pData[j];
pData[j] = temp;
}
}
}
}
int main()
{
int data[4];
for (int i = 0; i < 4; i++)
{
scanf_s("%d", data + i);
}
BubbleSort1(data, 4);
int minNum = data[0] * 1000 + data[1] * 100 + data[2] * 10 + data[3];
BubbleSort2(data, 4);
int maxNum = data[0] * 1000 + data[1] * 100 + data[2] * 10 + data[3];
printf("maxNum=%d minNum=%d maxNum-minNum=%d ", maxNum, minNum, maxNum - minNum);
return 0;
}
//小到大
void BubbleSort1(int* pData, int count)
{
int temp;
for (int i = 1; i < count; i++)
{
for (int j = count - 1; j >= i; j--)
{
if (pData[j] < pData[j - 1])
{
temp = pData[j - 1];
pData[j - 1] = pData[j];
pData[j] = temp;
}
}
}
}
//大到小
void BubbleSort2(int* pData, int count)
{
int temp;
for (int i = 1; i < count; i++)
{
for (int j = count - 1; j >= i; j--)
{
if (pData[j] > pData[j - 1])
{
temp = pData[j - 1];
pData[j - 1] = pData[j];
pData[j] = temp;
}
}
}
}
int main()
{
int data[4];
for (int i = 0; i < 4; i++)
{
scanf_s("%d", data + i);
}
BubbleSort1(data, 4);
int minNum = data[0] * 1000 + data[1] * 100 + data[2] * 10 + data[3];
BubbleSort2(data, 4);
int maxNum = data[0] * 1000 + data[1] * 100 + data[2] * 10 + data[3];
printf("maxNum=%d minNum=%d maxNum-minNum=%d ", maxNum, minNum, maxNum - minNum);
return 0;
}
- 3楼网友:舍身薄凉客
- 2021-04-04 10:22
#include
int main()
{
char num[4];
int i,j=0,a[10]={0},re[4]={0},max5=0,min5=0;
gets(num);
for (i=0;i<4;i++)
{
a[num[i]-'0']++;
}
for (i=0;i<10;i++)
{
while (a[i]!=0)
{
re[j++] = i;
a[i]--;
}
}
max5 = (re[3]*1000) + (re[2]*100) + (re[1]*10) +re[0] ;
min5 = (re[0]*1000) + (re[1]*100) + (re[2]*10) +re[3];
printf("MAX[%d]-MIN[%d] = [%d] ",max5,min5,max5-min5);
}
1000
MAX[1000]-MIN[1] = [999]
Press any key to continue
1234
MAX[4321]-MIN[1234] = [3087]
Press any key to continue
int main()
{
char num[4];
int i,j=0,a[10]={0},re[4]={0},max5=0,min5=0;
gets(num);
for (i=0;i<4;i++)
{
a[num[i]-'0']++;
}
for (i=0;i<10;i++)
{
while (a[i]!=0)
{
re[j++] = i;
a[i]--;
}
}
max5 = (re[3]*1000) + (re[2]*100) + (re[1]*10) +re[0] ;
min5 = (re[0]*1000) + (re[1]*100) + (re[2]*10) +re[3];
printf("MAX[%d]-MIN[%d] = [%d] ",max5,min5,max5-min5);
}
1000
MAX[1000]-MIN[1] = [999]
Press any key to continue
1234
MAX[4321]-MIN[1234] = [3087]
Press any key to continue
- 4楼网友:酒醒三更
- 2021-04-04 09:42
#includevoid main()
{
int t,h[4],max=0,min=0,i=0;
do{
scanf("%d",&t);
if(t<1000||t>9999)
printf("输入的不是四位数,请重新输入:");
}while(t<1000||t>9999);
h[0]=t/1000; //提取四位数
h[1]=t%1000/100;
h[2]=t%100/10;
h[3]=t%10;
max=h[0];
min=h[0];
for(i=1;i<4;i++)
{
if(h[i] min=h[i];
if(h[i]>max) //求最大值
max=h[i];
}
printf("%d ",max-min);
}
{
int t,h[4],max=0,min=0,i=0;
do{
scanf("%d",&t);
if(t<1000||t>9999)
printf("输入的不是四位数,请重新输入:");
}while(t<1000||t>9999);
h[0]=t/1000; //提取四位数
h[1]=t%1000/100;
h[2]=t%100/10;
h[3]=t%10;
max=h[0];
min=h[0];
for(i=1;i<4;i++)
{
if(h[i]
if(h[i]>max) //求最大值
max=h[i];
}
printf("%d ",max-min);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯