数组试题一

来源:互联网 发布:爱在记忆中找你知乎 编辑:程序博客网 时间:2024/06/05 09:25

1、从键盘上输入N个数保存到数组中,求出该数组中N个数的最大,最小以及平均值。

#include<stdio.h>int main(){    int n;    int a[10];    int i;    int max,min;    double avg,sum=0;    printf("请输入整数\n");    scanf("%d",&n);    printf("请输入%d个整数\n",n);    for(i=0;i<n;i++)    {    scanf("%d",&a[i]);    sum=sum+a[i];    }    avg=sum/n;    max=min=a[0];    for(i=1;i<n;i++)    {        if(max<a[i])        {            max=a[i];        }        else if(min>a[i])        {            min=a[i];        }    }    printf("max=%d,min=%d,avg=%.2f\n",max,min,avg);    return 0;}

求平均值的算法

max=min=a[0];    for(i=1;i<n;i++)    {        if(max<a[i])        {            max=a[i];        }        else if(min>a[i])        {            min=a[i];        }    }

2、从键盘上输入N个数保存到数组,找出最小的数及其下标,然后把它和数组最前面的元素互相换位置。

#include<stdio.h>int main(){    int n;    int a[10];    int i;    int min,loc=0;    int temp;    printf("请输入整数\n");    scanf("%d",&n);    printf("请输入%d个整数\n",n);    for(i=0;i<n;i++)    {    scanf("%d",&a[i]);    }    min=a[0];    for(i=1;i<n;i++)    {        if(min>a[i])        {            min=a[i];            loc=i;        }    }    printf("min=%d,loc=%d\n",min,loc);    a[loc]=a[0];    a[0]=min;    for(i=0;i<n;i++)    {        printf("%d ",a[i]);    }    return 0;}

互换位置

min=a[0];    for(i=1;i<n;i++)    {        if(min>a[i])        {            min=a[i];            loc=i;        }    }    printf("min=%d,loc=%d\n",min,loc);    a[loc]=a[0];    a[0]=min;    for(i=0;i<n;i++)    {        printf("%d ",a[i]);    }

3、杨辉三角
前提:必须是端点的数为1.
每个数等于它上方两数之和。
每行数字左右对称,由1开始逐渐变大。
第n行的数字有n项。
第n行数字和为2n-1。
每个数字等于上一行的左右两个数字之和。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和。

include <stdio.h>const int length = 10;  // 定义杨辉三角的大小int main(void){    int nums[length][length];    int i, j;    /*计算杨辉三角*/     for(i=0; i<length; i++)    {        nums[i][0] = 1;//第一个数为1        nums[i][i] = 1;//第i行的第i个数为1        for(j=1; j<i; j++)        {            nums[i][j] = nums[i-1][j-1] + nums[i-1][j];        }    }    /*打印输出*/     for(i=0; i<length; i++)    {        for(j=0; j<length-i-1; j++)        {            printf("   ");        }        for(j=0; j<=i; j++)        {            printf("%-5d ", nums[i][j]);        }        printf("\n");    }    return 0;}
原创粉丝点击