| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 814 人关注过本帖
标题:[求助]C语言题急寻解体者!谢谢
只看楼主 加入收藏
wang123liyun
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-6-17
收藏
 问题点数:0 回复次数:6 
[求助]C语言题急寻解体者!谢谢
1. 从键盘输入20个数,放入数组中,然后求它们的平均值;

2. 用随机函数产生整数100个,放入数组中,然后求其中的最大值和最小值并输出最大值最小值在数组中的位置;

3.输入一批数求其平均值,并找出与平均值最接近的数;

4.用随机函数产生整数100个,放入数组中,然后按从大到小排列输出。

5. 已知级数前三项为:x0=0,x1=0,x2=1, 下一项为前三项之和,请编程求出该级数的前20项,并要求每5个数为一行输出;
搜索更多相关主题的帖子: C语言 解体 
2007-06-19 22:24
love154139
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-5-6
收藏
得分:0 

1. 从键盘输入20个数,放入数组中,然后求它们的平均值;


#include <stdio.h>

#define n 20

void main()
{
int a[20],i;
float sum=0;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
sum+=a[i];
sum=sum/n;
printf("avgerage is: %.2f\n",sum);
}


2007-06-19 22:45
love154139
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-5-6
收藏
得分:0 

5. 已知级数前三项为:x0=0,x1=0,x2=1, 下一项为前三项之和,请编程求出该级数的前20项,并要求每5个数为一行输出;



#include <stdio.h>
#define n 20 //可以改变n的值输出不同的结果
void main()
{
int i,a[n],m;
a[0]=a[1]=0;
a[2]=1;

for(i=3;i<n;i++)
a[i]=a[i-1]+a[i-2]+a[i-3];
m=0;
for(i=0;i<n;i++)
{
m++;
printf("%d ",a[i]);
if(m%5==0&&i!=0)
printf("\n");
}
}


2007-06-19 22:48
hb2137
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-6-12
收藏
得分:0 
5. 已知级数前三项为:x0=0,x1=0,x2=1, 下一项为前三项之和,请编程求出该级数的前20项,并要求每5个数为一行输出:


#include <stdio.h>

int f(int);
void main()
{
for(int i=0;i<20;i++)
{
printf("%d\t",f(i));
if(i%5==4)
printf("\n");
}
return;
}


int f(int n)
{
if(n==0||n==1)
return 0;
if(n==2)
return 1;
if(n>2)
return f(n-3)+f(n-2)+f(n-1);
}

2007-06-19 23:04
hb2137
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-6-12
收藏
得分:0 
4.用随机函数产生整数100个,放入数组中,然后按从大到小排列输出:


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 100


void qsort(int[],int,int);
int findpivot(int[],int,int);
int partition(int[],int,int,int);
void swap(int[],int,int);
void main()
{
srand(time(NULL));
int A[SIZE];
for(int n=0;n<SIZE;n++)
{
A[n]=rand();
}
qsort(A,0,99);
for(n=0;n<SIZE;n++)
printf("%d\n",A[SIZE-n]);
return ;
}

void qsort(int A[],int i,int j)
{
if(j<=i)return ;
int pivotindex=findpivot(A,i,j);
swap(A,pivotindex,j);
int k=partition(A,i-1,j,A[j]);
swap(A,k,j);
qsort(A,i,k-1);
qsort(A,k+1,j);
}


int findpivot(int A[],int i,int j){return (i+j)/2;}

int partition(int A[],int l,int r,int pivot)
{
do
{
while(A[++l]<pivot);
while((r!=0)&&A[--r]>pivot);
swap(A,l,r);
}while(l<r);

swap(A,l,r);
return l;
}

void swap(int A[],int a,int b)
{
int hold=A[a];
A[a]=A[b];
A[b]=hold;
}

2007-06-20 01:01
nyx416723
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-6-20
收藏
得分:0 
用指针不是更简单吗?
用选择法,对100个数排序就可以了。
2007-06-20 15:02
nyx416723
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-6-20
收藏
得分:0 

#define SIZE 100
void main()
{
srand(time(NULL));
int A[SIZE];
for(int n=0;n<SIZE;n++)
{
A[n]=rand();
}
int *p,i;
p=A;sort(p,SIZE)
for(p=A;i<SIZE;i++)
{
printf("%d",*p);
p++;
}
}
sort(int *x,int n)
{
int i,j,k,t;
for(i=0;i<n;i++)
{
k=i;
for(j=i+1;j<n;j++)
if (*(x+i)<(x+k))
k=j;
if(k!=i)
{
t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;
}
}
}
这样应该可以。
我没运行。可以试下。

2007-06-20 15:15
快速回复:[求助]C语言题急寻解体者!谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020996 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved