C语言:输入四个正整数按从大到小排序,用冒泡排序方法,书上没有详细过程,老师没讲,尽量用简单的方法

作者&投稿:乐该 (若有异议请与网页底部的电邮联系)
C语言编程题:输入4个整数,要求按由小到大顺序输出怎么编啊?~

利用函数的模块化设计。
1、完成整体函数格局,输入、排序、输出。

2、输入函数代码如下:

3、排序函数代码如下:

4、输出函数代码如下:

5、执行结果:

扩展资料:
利用数组和循环结构实现排序功能,具体代码如下:

执行结果同上。

代码如下(对10个整数进行升序排序):
#include<stdio.h>
int main()
{
int i,j,t,a[10]={5,4,8,3,6,9,7,222,64,88};
//排序
for(i=1;i<10;i++)//外循环控制排序趟数,n个数排n-1趟
{
for(j=0;j<10-1;j++)//内循环每趟比较的次数,第j趟比较n-i次
{
if(a[j]>a[j+1])//相邻元素比较,逆序则交换
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("排序后的结果是:
");
for(i=0;i<10;i++)
{
printf("%d",a<i>);
}
printf("
");
return 0;
}
冒泡法:
算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比较的顺序从前往后,经过一趟比较后,将最值沉底(换到最后一个元素位置),最大值沉底为升序,最小值沉底为降序。

扩展资料:include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:
#include<math.h>//一些数学函数的原型,以及相关的类型和宏
如果需要包含针对程序所开发的源文件,则应该使用第二种格式。
采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。如下例所示:
#include"myproject.h"//用在当前项目中的函数原型、类型定义和宏
你可以在#include命令中使用宏。如果使用宏,该宏的取代结果必须确保生成正确的#include命令。例1展示了这样的#include命令。
【例1】在#include命令中的宏
#ifdef _DEBUG_
#define MY_HEADER"myProject_dbg.h"
#else
#define MY_HEADER"myProject.h"
#endif
#include MY_HEADER
当上述程序代码进入预处理时,如果_DEBUG_宏已被定义,那么预处理器会插入myProject_dbg.h的内容;如果还没定义,则插入myProject.h的内容。

#include<stdio.h>
int main()
{
 int a[4],i,j,t;
 for(i=0;i<4;i++)
   scanf("%d",&a[i]);
 for(i=0;i<3;i++)
  for(j=i+1;j<4;j++)
   {
     if(a[i]<a[j])
      {
        t=a[i];
        a[i]=a[j];
        a[j]=t;
      }
   }
 for(i=0;i<4;i++)
   printf("%d ",a[i]);
}

  这是最简单的冒泡排序把,利用双for循环完成的。这个代码的意思是,将数字存入到一个数组中,然后用数组的第一个元素一次后面的元素比较,如果后面的元素大于第一个元素,那么就和第一个元素对调。这样最大的个元素会移动到第一个元素的位置上。然后用数组的第二个元素同样的方法进行比较和交换。最终完成从大到小的排序。

  外面的for循环的作用是确定用来比较的基数的、。第一循环时,它确定的比较基数就是第一个元素,以此类推。里面的循环的作用是将基数和后面的元素比较,如果后面的元素小于的基数,那么和基数互相对调。



#include<stdio.h>
int main(){
int i,j,k,temp;
int arr[4];

for(i=0;i<4;i++){
printf("请输入第%d个数",i+1);
scanf("%d",&arr[i]);
}
printf("您输入的数从大到小排序为:");

for(j=0;j<4;j++){

if(arr[j]<arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}

}
for(k=0;k<4;k++){
printf("%d",arr[k]);
}

return 0;


}


4 3 2 1
->3 4 2 1
->3 2 4 1
->3 2 1 4第一次循环结束,确定最大的在最后
->2 3 1 4
->2 1 3 4第二次结束,第二大的在倒数第二的位置
->1 2 3 4循环结束

最后一步输入格式错误。
for(i=0;i<4;i++)
{
printf("%d",a[i]);
if(m-1>0)
printf(" ");
m--;
}
printf("\n");


输入一个四位正整数,使用字符串切片方法,计算出这个数的个位 十位 百...
include int main(){ char s[5],s1[9]="千百十个";int i;printf("输入一个四位数:");scanf("%s",s);for(i=3;i>-1;i--)printf("%c%c位数:%c\\n",s1[i+i],s1[i+i+1],s[i]);return 0;} 例如:int i=2123 int one,two,three,four one=i%10;\/\/个位 two=(i\/10)%...

读入一个四位正整数,输出它们的各位数字之和。用c++语言
可以参考下面的代码:include void main(){ int a,i=0,sum=0;scanf("%d",&a);while(a){ sum+=(a%10);\/\/sum是个位数之和 a\/=10;i++;\/\/i为位数 } printf("%d位数,各位数字之和为%d\\n",i,sum);}

求一c语言程序:输入一批正整数(以0或负数为结束标志)求其中偶数的...
include<stdio.h> int main(){ int n,sum=0;printf("请输入一列整数:");scanf("%d",&n);while(n>0){ if(n%2==0)sum=sum+n;scanf("%d",&n);} printf("这列整数中偶数和为:%d\\n",sum);return 0;}

输入一个四位正整数,输出中间的两位 c语言 用循环
include<stdio.h> void main(){ int n,m,t,i=0;int a[4];printf("请输入n=");scanf("%d",&n);m=n;while(m%10){ t=m%10;a[i++]=t;m=m\/10;} printf("%d的中间两位数为:%d,%d\\n",n,a[2],a[1]);}

C语言:编写程序从键盘输入不定数量的正整数?
下面我的代码是用方法二写的:include <stdio.h> include <malloc.h> int input(int **nsp);\/\/输入任意个整数,忽略负数,输入0结束,成功返回数组长度,失败返回-1 int main(){ int i,len,sum=0,*nums=NULL;len=input(&nums);printf("输入的正整数为:\\n");for(i=0;i<len;printf("...

c语言编写程序,输入n个正整数,输出n的值。
首先分析题目:它不是简单的求和,偶数位为减法,所以要用if语句判断。程序是这样的:sum1 = 0n = 1 # 计算参与运算的数cnt = 1 # 为了变换运算符号while True:n = n + 2 # 下个数cnt += 1if cnt % 2 == 0:m = -1 * nelse:m = nsum1 = sum1 + mif sum1 > 2022:...

C语言:输入一个小于100的正整数n,然后输入n个整数存入一维数组中,对...
这个程序的写法是比较标准而简单的,先输入一个整数n,然后使用一个循环输入n个整数到一维数组当中,在使用一个简单的排序方法,比方说冒泡排序就可以对数组进行从大到小的排序,最后输出就可以了.include <stdio.h> void bubble_sort(int a[], int n){ int i, j, t;for (i = 0; i < n...

如何用C语言输入正整数?
include <stdio.h> int main(){ int x,sum=0,t;printf("请输入一个正整数:");scanf("%d",&x);while(x!=0){ t=x%10;x=x\/10;sum+=t;} printf("该数的各位数字之和:%d",sum);} C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理...

求一个C语言程序:输入正整数,要求以相反数顺序输出该数。如输入1234,输...
int main(int argc, char* argv[]){ int input;int ret,num;printf("Input a int:");scanf("%d",&input);for(;;){ num=input%10;input=input\/10;printf("%d",num);if(input<10){ printf("%d\\n",input);break;} } return 0;} 例子输出。当然实际上,你要把printf的部分保存起来...

C语言输入若干个大于2的正整数,如果是偶数,则将其分解为两个素数并...
include <stdio.h> define N 100 void dev(int a){ int f1=0,f2=0,j=0,n,m=a,i;for(n=2;m>(a\/2);n++){ j=0;m=a-n;for(i=2;i<=n\/2;i++) if(n%i==0) f1++;for(i=2;i<=m\/2;i++) if(m%i==0) f2++;if(f1+f2==0) {j=1;} if(j==1) printf("%d...

汉阳区13993467591: 任意输入4个整数,从大到小排列输出.c语言程序怎么写 -
呈郎海墨: 任意输入4个整数,从大到小排列输出.c语言程序写法:main() {int a,b,c,d,m; scanf("%d %d %d %d",&a,&b,&c,&d); if(b>a) {m=a;a=b;b=m;} if(d>c) {m=c;c=d;d=m;} if(c>a) {m=a;a=c;c=m;} if(c>b); {m=b;b=c;c=m;}printf("\n%d %d %d %d\n",a,...

汉阳区13993467591: 用C语言编写一个程序,输入4个整数,按从大到小顺序输出! -
呈郎海墨: PROGRAM 程序名(input,output); Var a,b,c,d,t: Real; Begin Write('Input a, b,c='); Readln(a,b,c,d); if a>b then begin {复合语句} t:=a; a:=b; b:=t {交换a,b} end; if a>c then begin {复合语句} t:=a; a:=c; c:=t {交换a,c} end; if a>d then begin {复合语句} ...

汉阳区13993467591: 求高手用C语言帮写个程序:输入4个整数,要求按由大到小的顺序输出.先谢谢拉! -
呈郎海墨: /* 输入4个整数(逗号隔开) : 23 45 80 9 排序后 : 80 45 23 9 请按任意键继续. . . */ #include <stdio.h>const int N = 4;void SelectSort(int a[], int n) {int i,j,k,t;for(i = 0; i < n - 1; ++i) {k = i;for(j = i + 1; j < n; ++j) {if(a[j] > a[k]) k = j;}if(i != k) {t =...

汉阳区13993467591: 用计算机C语言程序设计 输入4个整数,要求按由小到大的顺序输出 -
呈郎海墨: #include"stdio.h" main() {int a[4],i,j; printf("请输入四个整数:\n"); //以空格分开// for(i=0;i<4;i++)scanf("%d",&a[i]); for(i=1;i<4;i++)for(j=0;j<=4-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}printf("排列后的顺序是:\n"); for(i=0;i<4;i++)printf("%5d",a[i]); } 用VC++运行过了,没错!如有问题请联系!

汉阳区13993467591: 编写C程序,对输入的四个整数按从大到小的顺序输出? -
呈郎海墨: #include"stdio.h" void main() {int a, b, c, d, t;printf("输入四个整数");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;}...

汉阳区13993467591: 输入四个整数要求由大到小顺序输出,用c语言编程,谢谢 -
呈郎海墨: #include<stdio.h> int main() {int n=4,i,j,t,a[4]; printf("请输入4个整数:"); for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n-1;i++) for(j=0;j<n-1-i;j++) if(a[j]<a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); return 0; }

汉阳区13993467591: C语言中怎么编写“输入四个整数按大小顺序排列输出”? -
呈郎海墨: #includevoid main() { int a[4]; int temp; for(int i=0;i{ printf("请输入第%d个整数",i+1); scanf("%d",&a[i]); } for(i=0;i{ for(int j=0;jif(a[j]{ temp=a[j+1]; a[j+1]=a[j]; a[j]=temp; } } } printf("\n排序后为:\n"); for(i=0;iprintf("%d",a[i]); } printf("\n") }

汉阳区13993467591: 输入4个整数,要求从大到小按顺序输出....c语言编程.xiexie -
呈郎海墨: # include int main() { int i,j,t,a[4];/* 定义一个数组用来存这4个数 */ for(i=0;i<4;i++) scanf("%d",&a[i]); /* 录入4个数 */ for(i=0;i<4;i++) /* 冒泡法 */ for(j=0;j<3-i;j++) { if(a[j]{ t=a[j+1]; a[j+1]=a[j]; a[j]=t; } } for(i=0;i<4;i++) /* 分别输出排完后的4个数 */ printf("%d ",a[i]); } return 0; }

汉阳区13993467591: c语言题目,写一段代码:输入4个正数,要求按由大到小的顺序输出.求大神!谢谢 -
呈郎海墨: 我稍稍提醒你一下:定义数组,存放输入变量,再用选择法或冒泡法排序,再输出数组!具体自己写,这是c中的基本内容!

汉阳区13993467591: C语言编程,输入4个整数,要求按大小顺序输出. -
呈郎海墨: 在vc中编译通过,你可以改成输入很多个数,按大小输出:#include void main() { int a[4]; int i,j,t; for(i=0;i { cin>>a[i]; } for(i=0;i for(j=i+1;j { if(a[i] { t=a[i]; a[i]=a[j]; a[j]=t; } } for(i=0;i { cout } }

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