开篇:润墨网以专业的文秘视角,为您筛选了一篇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].电子工业出版社.