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;
}