高分悬赏:一个简单C语言程序,相信大神们只需一刻钟就能搞定。需要完整代码,必要的注释,完全符合可加分
设计一个程序,用一维数组描述一个数据集合(包含10个整数),采用指针方式完成数组元素的三种操作:(1)求数组中各元素的平均值;(2)按升序排列数组中的各元素;(3)将一维...
设计一个程序,用一维数组描述一个数据集合(包含10个整数),采用指针方式完成数组元素的三种操作:(1)求数组中各元素的平均值;(2)按升序排列数组中的各元素;(3)将一维数组升序排列的数据元素,一维数组原数据元素保存到一个新的2行10列二维数组中,并分行输出该二维数组元素值。具体实现要求:(1)编制出相应程序,用子函数调用形式(分别定义计算平均值、升序排列和二维数组数据处理三个功能子函数)实现每一功能。
需符合以上条件,不符合的就不要来了。不要怕分不够多,就怕你写不出来!在线等~ 展开
需符合以上条件,不符合的就不要来了。不要怕分不够多,就怕你写不出来!在线等~ 展开
展开全部
#include<stdio.h>
void average(int *num,int n)
{
int i;
int sum = 0;
float aver;
for(i=0; i<n; i++)
{
sum += *(num++);
}
aver = (float)sum/(float)n;
printf("the average of the array is %.2f\n",aver);
return ;
}
void sort(int *num,int *p,int n)
{
int i,j;
int *q = p;
int *w = p;
int swap;
for(i=0; i<n; i++)
{
*p++ = *num++;
}
p = q;
printf("before sort:\n");
for(i=0; i<n; i++)
{
printf("%d ",*p++);
}
printf("\n");
for(i=0; i<(n); i++)
{
q = p = w;
for(j=0; j<(n-i); j++)
{
if(*q > *p)
{
swap = *p;
*p = *q;
*q = swap;
}
q = p++;
}
}
printf("after sort:\n");
for(i=0; i<n; i++)
{
printf("%d ",*w++);
}
printf("\n");
return ;
}
void merge(int *num,int *num2,int *p,int *q,int n)
{
int i,j;
int *ps = p;
int *qs = q;
for(i=0; i<n; i++)
{
*p++ = *num++;
*q++ = *num2++;
}
printf("after merge:\n");
for(i=0; i<n; i++)
{
printf("%d ",*ps++);
}
printf("\n");
for(i=0; i<n; i++)
{
printf("%d ",*qs++);
}
printf("\n");
return ;
}
void main()
{
int num[10] = {10,8,7,14,-9,-3,78,37,19,23};
int sortdata[10];
int newdata[2][10];
average(num,10);
sort(num,sortdata,10);
merge(num,sortdata,newdata[0],newdata[1],10);
return;
}
用3个子函数实现3个子功能。。。。
void average(int *num,int n)
{
int i;
int sum = 0;
float aver;
for(i=0; i<n; i++)
{
sum += *(num++);
}
aver = (float)sum/(float)n;
printf("the average of the array is %.2f\n",aver);
return ;
}
void sort(int *num,int *p,int n)
{
int i,j;
int *q = p;
int *w = p;
int swap;
for(i=0; i<n; i++)
{
*p++ = *num++;
}
p = q;
printf("before sort:\n");
for(i=0; i<n; i++)
{
printf("%d ",*p++);
}
printf("\n");
for(i=0; i<(n); i++)
{
q = p = w;
for(j=0; j<(n-i); j++)
{
if(*q > *p)
{
swap = *p;
*p = *q;
*q = swap;
}
q = p++;
}
}
printf("after sort:\n");
for(i=0; i<n; i++)
{
printf("%d ",*w++);
}
printf("\n");
return ;
}
void merge(int *num,int *num2,int *p,int *q,int n)
{
int i,j;
int *ps = p;
int *qs = q;
for(i=0; i<n; i++)
{
*p++ = *num++;
*q++ = *num2++;
}
printf("after merge:\n");
for(i=0; i<n; i++)
{
printf("%d ",*ps++);
}
printf("\n");
for(i=0; i<n; i++)
{
printf("%d ",*qs++);
}
printf("\n");
return ;
}
void main()
{
int num[10] = {10,8,7,14,-9,-3,78,37,19,23};
int sortdata[10];
int newdata[2][10];
average(num,10);
sort(num,sortdata,10);
merge(num,sortdata,newdata[0],newdata[1],10);
return;
}
用3个子函数实现3个子功能。。。。
展开全部
#include <stdio.h>
double aver(int a[10]);
void sort(int a[10]);
void hebing(int a[10],int b[2][10]);
void main()
{
int i,c[10],d[2][10];
int x[10]={1,-2,4,5,8,9,0,6,7,11};
printf("\n验证升序函数的数组元素:\n");
for(i=0;i<10;i++)
printf("%d ",x[i]);
sort(x);
printf("\n升序后的数组:\n");
for(i=0;i<10;i++)
printf("%d ",x[i]);
printf("\n\n下面请输入10个数:\n");
for(i=0;i<10;i++)
scanf("%d",&c[i]);
printf("\n这十个数的平均数是:%lf\n",aver(c));
printf("\n合并后两个数组:\n");
hebing(c,d);
}
double aver(int a[10])
{
int i,sum=0;
for(i=0;i<10;i++)
sum+=*(a+i);
return (sum/10.0);
}
void sort(int a[10])
{
int i,j,k,t;
for(i=0;i<9;i++)
{
k=i;
for(j=i+1;j<10;j++)
if(*(a+j)<=*(a+k)) k=j;
if(k!=i)
{
t=*(a+i);
*(a+i)=*(a+k);
*(a+k)=t;
}
}
}
void hebing(int a[10],int b[2][10])
{
int i,j;
for(i=0;i<10;i++)
*(*(b+1)+i)=*(a+i);
sort(a); //调用sort函数 可以看到升序排列效果
for(i=0;i<10;i++)
*(*b+i)=*(a+i);
for(i=0;i<2;i++)
for(j=0;j<10;j++)
{
printf("%d ",*(*(b+i)+j));
if(j==9) printf("\n");
}
}
double aver(int a[10]);
void sort(int a[10]);
void hebing(int a[10],int b[2][10]);
void main()
{
int i,c[10],d[2][10];
int x[10]={1,-2,4,5,8,9,0,6,7,11};
printf("\n验证升序函数的数组元素:\n");
for(i=0;i<10;i++)
printf("%d ",x[i]);
sort(x);
printf("\n升序后的数组:\n");
for(i=0;i<10;i++)
printf("%d ",x[i]);
printf("\n\n下面请输入10个数:\n");
for(i=0;i<10;i++)
scanf("%d",&c[i]);
printf("\n这十个数的平均数是:%lf\n",aver(c));
printf("\n合并后两个数组:\n");
hebing(c,d);
}
double aver(int a[10])
{
int i,sum=0;
for(i=0;i<10;i++)
sum+=*(a+i);
return (sum/10.0);
}
void sort(int a[10])
{
int i,j,k,t;
for(i=0;i<9;i++)
{
k=i;
for(j=i+1;j<10;j++)
if(*(a+j)<=*(a+k)) k=j;
if(k!=i)
{
t=*(a+i);
*(a+i)=*(a+k);
*(a+k)=t;
}
}
}
void hebing(int a[10],int b[2][10])
{
int i,j;
for(i=0;i<10;i++)
*(*(b+1)+i)=*(a+i);
sort(a); //调用sort函数 可以看到升序排列效果
for(i=0;i<10;i++)
*(*b+i)=*(a+i);
for(i=0;i<2;i++)
for(j=0;j<10;j++)
{
printf("%d ",*(*(b+i)+j));
if(j==9) printf("\n");
}
}
追问
其实挺喜欢这位朋友的风格的~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void avg(int *a)
{
int *p,sum=0;
for(p=a;p<a+10;p++)
sum+=*p;
printf("%lf\n",sum/10.0);
}
void sort(int *a)
{
int *p,*q,t;
for(p=a;p<a+10;p++)
for(q=p+1;q<a+10;q++)
if(*p>*q)
{
t=*p;
*p=*q;
*q=t;
}
for(p=a;p<a+10;p++)
printf("%d ",*p);
printf("\n");
}
void comb(int *a,int *b)
{
int *p,*q;
for(p=b,q=a;p<b+10;q++,p++)
*p=*q;
}
int main()
{
int a[30],b[2][10],*p,*q;
for(p=a,q=b[0];p<a+10;q++,p++)
{
scanf("%d",p);
*q=*p;
}
avg(a);
sort(a);
comb(a,b[1]);
for(p=b[0];p<b[0]+10;p++)
printf("%d ",*p);
printf("\n");
for(p=b[1];p<b[1]+10;p++)
printf("%d ",*p);
printf("\n");
return 0;
}
#include<stdlib.h>
#include<string.h>
void avg(int *a)
{
int *p,sum=0;
for(p=a;p<a+10;p++)
sum+=*p;
printf("%lf\n",sum/10.0);
}
void sort(int *a)
{
int *p,*q,t;
for(p=a;p<a+10;p++)
for(q=p+1;q<a+10;q++)
if(*p>*q)
{
t=*p;
*p=*q;
*q=t;
}
for(p=a;p<a+10;p++)
printf("%d ",*p);
printf("\n");
}
void comb(int *a,int *b)
{
int *p,*q;
for(p=b,q=a;p<b+10;q++,p++)
*p=*q;
}
int main()
{
int a[30],b[2][10],*p,*q;
for(p=a,q=b[0];p<a+10;q++,p++)
{
scanf("%d",p);
*q=*p;
}
avg(a);
sort(a);
comb(a,b[1]);
for(p=b[0];p<b[0]+10;p++)
printf("%d ",*p);
printf("\n");
for(p=b[1];p<b[1]+10;p++)
printf("%d ",*p);
printf("\n");
return 0;
}
追问
两位都写的很好,但是我只能选择一个。。。这个我也纠结了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
擦!这问题值200分,亏老~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询