首页 > 范文大全 > 正文

C程序在数学上的应用

开篇:润墨网以专业的文秘视角,为您筛选了一篇C程序在数学上的应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要 C语言是目前世界上流行、使用最广泛的面向过程的高级程序设计语言。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。

数学问题是相对较难的问题,C语言不但能够解决简单的数学问题,而且对于函数等抽象的数学问题也是迎刃而解。

关键词 C语言;程序设计语言;高级语言

一、举例说明

1.简单的数学问题

【例1】在键盘上输入N个整数,试编制程序使该数组中的数按照从大到小的次序排列。

分析:C中数组长度必须是确定大小,即指定N的值。排序的方法有多种,我们取出其中两种作为参考。

方法一:起泡排序

从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此类推直到第(N-1)遍比较后就可以完成排序。

源程序如下:

#define N 10

#include"stdio.h"

main()

{

int a[N],i,j,temp;

printf("please input %d numbers\n",N);

for(i=0;i

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

for(i=0;i

for(j=0;j

{

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

{

temp=a[j];

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

a[j+1]=temp;

}

}

printf("the array after sort:\n");

for(i=0;i

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

}

方法二:选择排序

首先找出值最小的数,然后把这个数与第一个数交换,这样值最小的数就放到了第一个位置;然后,在从剩下的数中找值最小的,把它和第二个数互换,使得第二小的数放在第二个位置上。以此类推,直到所有的值从小到大的顺序排列为止。

#include"stdio.h"

#define N 10

main()

{

int a[N],i,j,r,temp;

printf("please input %d numbers\n",N);

for(i=0;i

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

for(i=0;i

{ r=i;

for(j=i+1;j

if(a[j]

r=j;

if(r!=i)

{

temp=a[r];

a[r]=a[i];

a[i]=temp;

}

}

printf("the array after sort:\n");

for(i=0;i

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

printf("\n");

}

【例2】青年歌手参加歌曲大奖赛,有10个评委对她的进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。

分析:这道题的核心是排序。将评委所打的10个分数利用数组按增序(或降序)排列,计算数组中除第一个和最后一个分数以外的数的平均分,其中排序部分这里用选择法实现。

main()

{int i,j,min;

float temp,ave=0;

float a[11];

printf("\n输入评委所打的分数:\n");

for(i=1;i

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

for(i=1;i

{min=i;

for(j=i+1;j

if(a[min]>a[j])

min=j;

temp=a[i];

a[i]=a[min];

a[min]=temp;

}

for(i=2;i

ave=ave+a[i];

printf("选手所得最后分数:%6.1f",ave/8);

printf("\n");

}

2.函数问题

【例1】写一函数,是给定的一个二位数组(4×4)转置,即行列互换。

源程序如下:

/*矩阵的转置*/

#define N 4

int array[N][N];

convert(array)

int array[4][4];

{

int i,j,t;

for (i=0;i

for (j=i+1;j

{

t=array[i][j]; array[i][j]=array[j][i]; array[j][i]=t;

}

}

main()

{

int i,j;

printf(“输入数组元素:\n”);

for (i=0;i

for (j=0;j

scanf(“%d”,&array[i][j]);

printf(“\n数组是:\n”);

for (i=0;i

{

for (j=0;j

printf(“%5d”,array[i][j]);

printf(“\n”);

}

conver(array);

printf(“转置数组是:\n”);

for (i=0;i

{

for (j=0;j

printf(“%5d”,array[i][j]);

printf(“\n”);

}

}

3.数组问题

【例1】有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。

#define M 3

#define N 4

main( )

{int max,i,j,r,c;

static int a[M][N]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}};

max=a[0][0];

for(i=0;i

for(j=0;j

if ( a[i][j]>max)

{max= a[i][j];

r=i;

c=j;

}

printf(“max=%d , row =%d , colum=%d \n”,max , r, c);

}

二、总结

C语言既有高级语言的特点,又具有汇编语言的特点;既是一个成功的系统设计语言,又是一个使用的程序设计语言;既能用来编写不依赖计算机

硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言。

C语言能够应用于数学上,为人类的生产、生活带来方便。

参考文献:

[1]谭浩强.C程序设计[M].清华大学出版社.

[2]乔林.C程序设计[M].清华大学出版社.

[3]姚国清,夏军宝,何勇强.C程序设计[M].航空工业出版社.

[4]田淑清.C程序设计(第2版)[M].电子工业出版社.