1. c语言怎么实现输入四个数abcd按从大到小输出
个整数的排序,有使用单个变量和使用数组二种方法实现。
使用单个变量的方法:
#include<stdio.h>
int main()
{int a,b,c,d,t;
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(a>d){t=a;a=d;d=t;}
if(b>c){t=b;b=c;c=t;}
if(b>d){t=b;b=d;d=t;}
if(c>d){t=c;c=d;d=t;}
printf("%d %d %d %d\n",a,b,c,d);
return 0;
}
使用数组和循环的方法:
#include<stdio.h>
int main()
{int a[4],i,j,t;
for(i=0;i<4;i++) //读入4个数据
scanf("%d",&a[i]);
for(i=0;i<3;i++) //冒泡排序
for(j=0;j<3-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i<4;i++) //输出4个数据
printf("%d ",a[i]);
printf("\n");
return 0;
}
2. C语言编程题:输入4个整数,要求按由小到大顺序输出怎么编啊
使用冒泡排序法进行编程:
解释:
1.第一个for循环:利用数组循环输入4个变量。
2.第二个for循环:该循环的意思是如果a[0]>a[1]的话,两个变量的值交换,利用循环依次比较。要注意的是i<3,因为其中有i+1,i最大取到2,也就是i+1最大取到3才正确。
3.第三个for循环:利用循环依次输出排序后的数组,每输出一个加一个空格以便于区分。
(2)c语言四个数怎么输出扩展阅读:
冒泡排序法,从数组头部开始,不断比较相邻的两个元素的大小,通过交换两个元素的值使较大的元素逐渐往后移动,直到数组的末尾。
经过第一轮的比较,就可以找到最大的元素,并将它移动到最后一个位置。第一轮结束后,继续第二轮。仍然从数组头部开始比较,让较大的元素逐渐往后移动,直到数组的倒数第二个元素为止。
经过第二轮的比较,就可以找到次大的元素,并将它放到倒数第二个位置。
以此类推,进行 n-1(n 为数组长度)轮“冒泡”后,就可以将所有的元素都排列好。
3. C语言中如何编 输入4个数 输出最大值和最小值
用数组来接收输入的4个数
然后给数组排序
最后只需要输出数组的第一个数和最后个数,具体代码如下:
int i,j,tmp,num;
int str[4];
num=4;
printf("请输入%d个整数:",num);//数
for(i=0;i<num;i++)
scanf("%d",&str[i]);
for(i=0;i<num-1;i++)//冒泡排序,从小到大
for(j=i+1;j<num;j++)
if(str[i]>str[j])
{tmp=str[i];str[i]=str[j];str[j]=tmp;}
printf("最小数:%d:\n",str[0]);//最小数
printf("最大数:%d:\n",str[3]);//最大数
4. c语言怎么任意输入4个数,然后将所有不同顺序的这4个数输出
采用递归的方法解决最好。
再提供一种初学者可以使用的方法,这个方法比较直接,容易理解:
#include<stdio.h>
voidmain()
{
inti,j,k,m,a[4];
for(i=0;i<4;i++)
scanf("%d",&a[i]);
printf(" 所有排列: ");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
for(k=0;k<4;k++)
for(m=0;m<4;m++)
if(i!=j&&i!=k&&i!=m&&j!=k&&j!=m&&k!=m)
printf("%d%d%d%d ",a[i],a[j],a[k],a[m]);
}
运行示例:
5. c语言 输入四个数,判断最大值输出
#include <stdio.h>
int main()
{int a, b, c, d, max;
scanf(“%d%d%d%d”, &a,&b,&c,&d);
max = a; //a先当第一任擂主
if(b > max) //如果b比擂主大,则b成为擂主,否则擂主不变
max = b;
if(c > max)
max = c;
if(d > max)
max = d;
printf(“%d
”, max);
getch();
return 0;
}
(5)c语言四个数怎么输出扩展阅读:
JAVA得到数组中最大值和最小值的简单实例
public class TestJava4_3
{
public static void main(String args[])
{
int i,min,max;
int A[]={74,48,30,17,62}; // 声明整数数组A,并赋初值
min=max=A[0];
System.out.print("数组A的元素包括:");
for(i=0;i<A.length;i++)
{
System.out.print(A[i]+" ");
if(A[i]>max) // 判断最大值
max=A[i];
if(A[i]<min) // 判断最小值
min=A[i];
}
System.out.println(" 数组的最大值是:"+max); // 输出最大值
System.out.println("数组的最小值是:"+min); // 输出最小值
}
}
该程序输出结果:
数组A的元素包括:74 48 30 17 62
数组的最大值是:74
数组的最小值是:17
6. c语言输入4个数,按从小到大输出
说实在的,程序写的确实比较差。
改这个程序比较麻烦,我猜测的你的原意
#include<stdio.h>
void
main()
{
int
a[4],b[4];
int
i,j,n,sum;
for(n=0;n<=3;n++)scanf("%d",&a[n]);
for(i=0;i<=3;i++){
sum=(a[i]>a[0])+(a[i]>a[1])+(a[i]>a[2])+(a[i]>a[3]);
if(sum==3)b[3]=a[i];
else
if(sum==2)b[2]=a[i];
else
if(sum==1)b[1]=a[i];
else
b[0]=a[i];
}
for(j=0;j<=3;j++)
printf("%d\n",b[j]);
}
不过问题比较多:
1、第二个for丢失了大括号(建议无论是否需要都先打上,以防忘记)
2、
if(sum=3)a[3]=a[i];
else
if(sum=2)a[2]=a[i];
else
if(sum=1)a[1]=a[i];
else
a[0]=a[i];
这个sum=3等应当写成sum==3
而且就这个,直接a[sum]=a[i]不是一样吗?
3、你要是修改了a[i]的值后面就错了,所以我给你添了b[4]
4、你没有考虑可以存在两个数或者多个数相同的情况。
5、你这个选择排序只是有个思路,距离编成程序还远
7. c语言作业,输出四个数A,B,C,D的全排列
#include<iostream>
#include<stdio.h>
#include<algorithm>
usingnamespacestd;
intmain()
{
intnum[4]={1,2,3,4};
do
{
printf("%c,%c,%c,%c ",num[0]+'A'-1,num[1]+'A'-1,num[2]+'A'-1,num[3]+'A'-1);
}while(next_permutation(num,num+4));
return0;
}
可以借助于stl模板中的next_permutation函数,这个函数是按照字典序不停的取该序列的下一个序列,直到结束。然后输出的时候讲数字转化为你要的字母即可。
例如 第一个序列是1,2,3,4,--》A,B,C,D
8. 任意输入4个整数,从大到小排列输出。c语言程序怎么写
个整数的排序,有使用单个变量和使用数组二种方法实现。
使用单个变量的方法:
#include<stdio.h>
int main()
{int a,b,c,d,t;
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(a>d){t=a;a=d;d=t;}
if(b>c){t=b;b=c;c=t;}
if(b>d){t=b;b=d;d=t;}
if(c>d){t=c;c=d;d=t;}
printf("%d %d %d %d\n",a,b,c,d);
return 0;
}
使用数组和循环的方法:
#include<stdio.h>
int main()
{int a[4],i,j,t;
for(i=0;i<4;i++) //读入4个数据
scanf("%d",&a[i]);
for(i=0;i<3;i++) //冒泡排序
for(j=0;j<3-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i<4;i++) //输出4个数据
printf("%d ",a[i]);
printf("\n");
return 0;
}
9. C语言 输入4个整数,要求按由小到大的顺序输出
if是可以没有else的,这样的情况下如果if的条件符合,则执行if语句,否则不执行,直接到下一个if。也就是说,如果a不大于b,也就是a小于b,那么就像刚刚说的,不执行这个if就是了,计算机会往下阅读程序,也就是去判断下一个if,记住一句话“if条件不符合就不执行”。else只是相当于if不符合的话其他情况下执行什么,如果没有else,那就表示,if不符合,程序保持不动。
这个程序给你举个实例讲解也许你就明白了
假设输入为1,3,4,2
1不大于3,第一个if不执行,目前顺序为1,3,4,2
1不大于4,第二个if不执行,目前顺序为1,3,4,2
1不大于2,第三个if不执行,目前顺序为1,3,4,2
3不大于4,第四个if不执行,目前顺序为1,3,4,2
3大于2,第五个if执行,实现交换,目前顺序为1,2,4,3
4大于3,第六个if执行,实现交换,最后顺序为1,2,3,4
其实你仔细想想,如果第一个if执行,实现交换,那么第二个if中的a已经是交换过后的那个较小的数。第三个同理。也就是说,前3个if执行完以后确保了第1个数是4个数字中最小的,第四第五确保第二个数在剩下的3个数中是最小的(也就是4个数字中第二小的),第6个if确保第三个数小于第四个数。这样子就实现了整个结构的排序。希望能帮到你。