c语言数组

1.输出所有大于平均数的值

  输出所有大于平均值的数,输入n(1<=n<=10),计算这些数的平均值,再输出所有大于平均值的数字

#include<stdio.h>
int main()
{
	int i,n;
	double sum=0,ave=0;
	int num[10];
	printf("请输入n的数量:\n"); 
	scanf("%d\n",&n);
	if(n>=1&&n<=10){
		for(i=0;i<n;i++){
			scanf("%d",&num[i]);
			sum+=num[i];
		}
		ave=sum/n;
		printf("%.2lf\n",ave);
		for(i=0;i<n;i++){
			if(num[i]>ave)
			  printf("%d ",num[i]);
		}
		printf("\n");
		
	}else{
		printf("你输入的数值超出范围\n");
	}
	
	return 0;
 } 

 2.斐波那契数列

利用数组计算斐波那契数列。利用数组计算斐波那契数列的前n个数,并按照每行5个数的格式输出,如果最后一行的输出少于5个数也需要换行。

#include<stdio.h>
const int MAX=46; 
int main()
{//设置max最大为46,如果大于46则进行错误提示 
	int i,n;
	int f[MAX]={1,1};//初始化斐波那契数列的前两个数 
	scanf("%d",&n);
	if(1<=n&&n<=46){
		for(i=2;i<=n;i++){
			f[i]=f[i-1]+f[i-2];//计算剩下n-2个斐波那契数 
		}
		//将计算出来的数按指定格式输出
		for(i=0;i<n;i++){
			printf("%7d ",f[i]);
			if((i+1)%5==0){
				printf("\n");
			}
		} 
		if(n%5!=0){
			printf("\n");//让最后一行如果不足5个也换行 
		}
	} else{
		printf("你想要统计的数列超出最大范围"); 
	}
	 
	return 0;
}

3.查找满足条件的所有整数-顺序查找法

输入正整数n,(1<=n<=10)和整数x,再输入n个整数并保存到数组a里面,再数组a中查找指定的x秒如果数组a中的元素与x的值相同,输出所有满足条件的元素的下标(下标从0开始);如果没有找到,输出no found;

#include<stdio.h>
const int max=10;
int main(){
	int i,n,x;
	int num[max];
	int flag=0;//定义一个标志,找到返回1,没找到返回0 
	printf("请输入你想保存的数量n,和查找的数字x\n");
	scanf("%d %d\n",&n,&x);
	printf("提示输入 %d 个整数\n",n);
	for(i=0;i<=n;i++){
		scanf("%d\n",&num[i]);
	}
	//在数组里面查找x
	for(i=0;i<n;i++){
		if(num[i]==x){
			printf("index is %d",i);
			flag=1;
			break;
		}
	} 
	if(flag==0)
	printf("no found\n");
	 
	return 0;
}

4求数组的最小数值和最小值的下标

#include<stdio.h>
const int max=10;
int main(){
	int i,n,temp=0;
	int num[max];
	int min=0,index=0;
	printf(" please enter thr n number\n");
	scanf("%d\n",&n);
	printf("please enter your number\n");
	if(n>=1&&n<=10){
		for(i=0;i<n;i++){
			scanf("%d\n",&num[i]);
		}
		min=num[0];
		for(i=0;i<n;i++){
			if(min>num[i]){
				min=num[i];
				index=i;
			}
		}
		printf("min is %d\t,index is %d\n",min,index);
		temp=num[0];
		num[0]=num[index];
		num[index]=temp;
		printf("输出将最小的值放在首位后的数组\n");
		for(i=0;i<n;i++){
			printf("%d ",num[i]);
		}
	}else{
		printf("please enter thr right number\n");
	}
	 
	return 0; 
} 

5.选择法排序,将数组里面的数值按从小到大排序

#include<stdio.h>
const int max=10;
int main(){
	int i,n,j;
	int num[max]={0,};
	int index=0,min;
	printf("请输入你要输入的数量\n");
	scanf("%d",&n);
	printf("请输入数组里面的数字\n");
	for(i=0;i<n;i++){
		scanf("%d\n",&num[i]);
	}
	for(i=0;i<n;i++){
		index=i;
		for(j=i;j<n;j++){
			min=num[i];
			if(min>num[j]){
				min=num[j];
			}
		}
		num[i]=min;
	}
	printf("输出排序后的数组\n");
	for(i=0;i<n;i++){
		printf("%d ",num[i]);
	}
	
	return 0;
}

6.动态内存分配求数组的和

#include<stdio.h>
#include<stdlib.h>
int main(){
	int n,sum=0,i,*p;
	printf("enter n:");
	scanf("%d",&n);
	//为数组p动态分配n个int类型大小的空间
	p=(int*)malloc(n*sizeof(int)); 
	printf("please enter %d numbers:\n",n);
	for(i=0;i<n;i++){
		scanf("%d",p+i);
		sum+=*(p+i);
	}
	printf("the sum is %d\n",sum);
	free(p);//释放动态内存申请的空间 
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值