编写C语言程序,把一个数组按从小到大的次序排列起来

编写C语言程序,把一个数组按从小到大的次序排列起来,第1张

源程序以及算法注释如下:

#define _CRT_SECURE_NO_WARNINGS//VS编译环境需要进行宏定义,VC60可忽略

#include<stdioh>//输入输出头文件

int main()

{

int number[10], New_number[10];//定义数组的数据类型为整型

int i, j, m, n, k;//定义变量的数据类型为整型

printf("input 10 <int> number:");//文字提示

for (i = 0; i <= 9; i++)//用循环输入数值给数组number并赋给数组New_number

{

scanf("%d", &number[i]);//输入10个整形数字到数组中

New_number[i] = number[i];//数组number元素赋给数组New_number

}

for (n = 0; n <= 8; n++)//要进行(10-1)组比较

for (j = 0; j <= 8 - n; j++)//每组进行(10减第几组)次比较

{

if (number[j] > number[j + 1])//比较大小并将小的赋给前面的数组

{

k = number[j];//将相对较大的元素赋值给中间元素

number[j] = number[j + 1];//将相对较小的元素送达前面一个位置

number[j + 1] = k;//将中间变量元素送给后面一个位置

}

if (New_number[j] < New_number[j + 1])//比较大小并将大的赋给前面的数组

{

k = New_number[j + 1];//将相对较小的元素赋值给中间元素

New_number[j + 1] = New_number[j];//将相对较大的元素送达前面一个位置

New_number[j] = k;//将中间变量元素送给后面一个位置

}

}

printf("min-->max:\n");//文字提示

for (m = 0; m <= 9; m++)//依次从小到大输出

printf("%d ", number[m]);//输出元素

printf("\n");

printf("max-->min:\n");//文字提示

for (m = 0; m <= 9; m++)//依次从大到小输出

printf("%d ", New_number[m]);//输出元素

printf("\n");

return 0;

}

程序运行结果如下:

扩展资料:

其他简单实现程序:

#include<stdioh>

int main()

{

int a[10]={0};

int i,j,temp;

for(i = 0;i<10;i++)

{

scanf("%d",&a[i]);

}

for(i = 0;i<10;i++)

{

for(j = 0;j<10-i-1;j++)

{

if(a[j]>a[j+1])

{

temp = a[j];

a[j] = a[j+1];

a[j+1] = temp;

}

}

}

for(i = 0;i<10;i++)

printf("%d ",a[i]);

return 0;

}

int main()

{int mat[3][4];

mat[0][0]=1;

for (int i=1;i<=3;i++)

{for (int j=1;j<=4;j++)

 {printf("请输入数组的第%d行第%d列的元素\n",i,j);

 scanf ("%d",&mat[i-1][j-1]);

 }

}

printf("这个二维数组是:\n");

for (int m=0;m<3;m++)

{for (int n=0;n<4;n++)

{printf ("%d  ",mat[m][n]);

}

printf ("\n");

}

}

#include <stdioh>

#include <stdlibh>

#include <timeh>

void showit(int p,int m,int n){

int i,j;

for(i=0;i<m;i++){

for(j=0;j<n;j++)

printf("%3d",p[in+j]);

printf("\n");

}

}

int findmin(int p,int n){

int i,min=p;

for(i=1;i<n;i++)

if (p[i]<min) min=p[i];

return min;

}

int findplace(int p,int n,int x){

int i;

for(i=0;i<n;i++)

if(p[i]==x) return i;

return -1;

}

int main(){

int a[4][5];

int i,j,min,m;

srand((int)time(NULL));

for(i=0;i<4;i++)

for(j=0;j<5;j++)

a[i][j]=rand()%10;

    showit((int )a,4,5); //显示数组

  min=findmin((int )a,54);//找出最小值  

printf("最小值是%d\n",min); 

m=findplace((int )a,45,min);//找出最小值是第几个元素

printf("其第一次出现在第%d行第%d列\n",m/5+1,m%5+1);

}

//#include "stdafxh"//vc++60加上这一行

#include "stdioh"

void main(void){

int oldn[20]={1,2,3,4,5,6,7,8,9,10,12,14,16,11,13,15,17,18,19,20};

int newn[2][10]={0,},i,j,k;

for(i=j=k=0;i<20;i++)

if(oldn[i]%2) newn[0][j++]=oldn[i];

else newn[1][k++]=oldn[i];

for(i=0;i<2;i++){//Look at

for(j=0;j<10;j++)

printf("%d ",newn[i][j]);

printf("\n");

}

}

C语言中,同变量一样;数组也必须先定义后使用。

一维数组的定义形式:

类型标识符  数组名[常量表达式];例如int a[10];   其中a为地址常量。

如变量的定义一样,int a ;double a;float a等;数组的定义只是把后面的变量名改为数组名而已。

int a[10]就是定义了一个数组名为a的数组;此数组有10个元素。其中各元素从a[0]到a[9];并没有a[10]元素。下面列举一个。

扩展资料

常量表达式可以包括字面常量和符号常量;但不能包含变量。例如对下面定义是错误的

int n=5

int a[n]

可以修改为

#define N 5

int a[N]

其中对二维及多位数组定义可以类推

int  a[x][y][z][]其中 x,y,z为数字。

参考资料

百度百科-C语言

以下是用C语言编写的实现方案:

#include <stdioh>

int main() {

int grades[5], total = , i;

printf("请输入5个学生成绩:\n");

for (i = ; i < 5; i++) {

scanf("%d", &grades[i]);

total += grades[i];

}

printf("5个学生的总成绩为:%d\n", total);

return ;

}

程序中首先定义一个长度为5的整型数组grades来存储学生成绩,然后循环5次,使用scanf从键盘输入每个学生的成绩,并将它们累加到变量total中。最后输出total的值,即5个学生的总成绩。

值得注意的是,程序中没有对输入的成绩做任何验证或错误处理,您应该根据实际需要添加相关的逻辑。

以上就是关于编写C语言程序,把一个数组按从小到大的次序排列起来全部的内容,包括:编写C语言程序,把一个数组按从小到大的次序排列起来、数据结构 编一段数组的c语言程序、C语言编程,数组问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9351139.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存