任务代码:
数组多数字求最大公约数:
#include <stdio.h>
#define N 8
int gcd(int,int);
int main()
{
int a[N]={26,1007,956,705,574,371,416,517};
int b[N]={994,631,772,201,262,763,1000,781};
int c[N];
int i;
for(i=0;i<N;i++)
{
c[i]=gcd(a[i],b[i]);//数组元素作为函数参数
}
printf("最大公约数分别是:");
for(i=0;i<N;i++)
{
printf("%d,",c[i]);
}
printf("\n");
return 0;
}
int gcd(int m,int n)
{
int r;
while((r=m%n))
{
m=n;
n=r;
}
return n;
}
#include <stdio.h>
#define N 10
float averageMark(int array[],int n)
{
int i,sum=array[0];
float aver;
for(i=1;i<n;i++)
{
sum=sum+array[i];
}
aver=sum/n;
return aver;
}
int main()
{
int score[N]={12,23,34,56,43,32,12,34,56,98};
float aver;
aver=averageMark(score, 10);//一个是数组名作为实际参数,一个是数组元素个数
printf("平均成绩为:%.2f",aver);
return 0;
}
#include <stdio.h>
int p(int a,int x[],int b, int y[],int n);
int main()
{
int s1,s2;
int d[]={1,3,5,2,6,8,3};
int v[]={1,3,2,4,6,5,7,4,7,8};
int w[]={2,3,4,6,2,3,6,8,9,9};
s1=p(1,d,2,v,7);
s2=p(3,v,4,w,9);
printf("向量1的结果为:%d\n",s1);
printf("向量2的结果为:%d\n",s2);
return 0;
}
int p(int a,int x[],int b, int y[],int n)
{
int sum=0,i;
for(i=0;i<=n;i++)//注意这里必须是<=因为最后要算到第n项
{
sum+=a*x[i]+b*y[i];
}
return sum;
}
专门用于排序的函数:
#include <stdio.h>
//使用冒泡排序法和数组指针来是数组内的数据排序
#define N 10
void bubblesort(int array[])
{
int i,j;
int t;
for(i=0;i<N-1;i++)
{
for(j=0;j<N-i-1;j++)
{
if(array[j]>array[j+1])
{
t=array[j+1];
array[j+1]=array[j];
array[j]=t;
}
}
}
}
int main()
{
int a[N]={3,-9,2,5,7,98,-1,-5,100,32};//定义一个无序数组
bubblesort(a);//冒泡排序a数组
printf("整理后的数组为:");
int i;
for(i=0;i<N;i++)
{
printf("%d,",a[i]);
}
printf("\n");
return 0;
}
执行情况:
第一题:
第二题:
第三题:
第四题:
知识总结:
数组的名称就是代表指针!指针的改变可以是元数组的值改变!
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。