• 实验 6 数组1


    /*输入n个整数,将它们存入数组a中。输出最大值和它所对应的下标*/
    #include<stdio.h> int main(void) { int max(int x,int y); /*函数声明*/
    int a[10],m,n,i; printf("输入10个数字:"); for(i=0;i<10;i++) /*输入10个数给a[0]~a[10]*/
    scanf_s(
    "%d",&a[i]); printf(" "); for(i=1,m=a[0],n=0;i<10;i++) { if(max(m,a[i])>m) /*若max函数返回值大大于m*/
    { m
    =max(m,a[i]); /*max函数返回的值取代m原值*/
    n
    =i; /*把此数组元素的序号记下来,放在n中*/
    } } printf(
    "最大数是:%d 标号为:%d ",m,n); } int max(int x,int y) /*定义max函数*/
    {
    return(x>y? x:y); /*返回x和y中的大者*/
    }

    2、输入n个整数,存入数组a中,分别按正序和逆序输出这些数;

    /* 分别按正序和逆序输出n个整数 */
    #include<stdio.h>
    int main(void)
    {
        int n,a[10],i;                       //定义一个整型数组
    printf(
    "输入n:"); scanf_s("%d ",&n); for(i=0;i<n;i++){ //把n的值,赋给a[i] scanf_s("%d",&a[i]); } printf("正序输出一维数组a "); //正序输出数组结果
    for(i=0;i<n;i++){ printf("数组元素a[%d],元素值%6d ",i,a[i]); } printf(" "); printf("逆序输出一维数组a "); //逆序输出
    for(i=n-1;i>=0;i--){ printf("数组元素a[%d],元素值%6d ",i,a[i]); } return 0; }

    3、定义一维数组arr,他有5个双精度浮点型元素,任意输入5个后,用冒泡排序法,由大到小排序并输出:

    /* 用冒泡排序法,由大到小排序并输出数字 */
    #include<stdio.h>
    int main(void)
    {
        int i,j;
        double f[5]; //定义浮点型数组
        double t;    
        printf("请输入5个实数:
    ");  //赋值
        for(i=0;i<5;i++){
        
            scanf_s("%Lf",&f[i]);
        }        
        printf("
    ");
        for(j=0;j<5;j++)              //冒泡法,即进行4次循环,其中每个元素循环i-j次
        for(i=0;i<5-j;i++)
            if(f[i]<f[i+1]){          //若第i项小于后一项,则两项调转位置
                t=f[i+1];f[i+1]=f[i];f[i]=t;
            }                
            printf("由大到小排序后:
    ");
            for(i=0;i<5;i++)    {        //输出排列后的结果
    
                printf("%Lf",f[i]);    
                printf("
    ");
            }
            return 0;
    }

    4、设计一个程序,利用二维数组输出3x2矩阵

    /* 利用二维数组输出3x2矩阵 */
    #include<stdio.h>
    int main(void)
    {
        int i,n;
        int a[3][2];              //定义一个二维数组
    printf(
    "enter a:"); //由行到列赋值
    for(i=0;i<3;i++){ for(n=0;n<2;n++){ scanf_s("%d",&a[i][n]); } } for(i=0;i<3;i++){ //输出矩阵
    for(n=0;n<2;n++){ printf("%6d",a[i][n]); } printf(" "); } return 0; }

    5、定义一个3×3的整形二维数组arr,为数组各元素赋值,找出最小值以及它的行下标和列下标,并输出该矩阵

    /* 定义一个3×3的整形二维数组arr,为数组各元素赋值,找出最小值以及它的行下标和列下标,并输出该矩阵 */
    #include<stdio.h>
    int main(void)
    {
        int i,n;
        int a[3][3];                //定义一个3*的整型二维数组
    printf(
    "enter a: "); //为该数组赋值
    for(i=0;i<3;i++){ for(n=0;n<3;n++){ scanf_s("%d",&a[i][n]); } } printf("输入数组为: "); for(i=0;i<3;i++){ for(n=0;n<3;n++){ printf("%6d",a[i][n]); } printf(" "); } int row=0,colum=0,min; // 定义整型变量row=行,colum=列,min为最小值
    min
    =a[0][0]; //首先认为a[0][0]为最小
    for(i=0;i<3;i++) for(n=0;n<3;n++) if(a[i][n]<min){ //如果某元素小于a[0][0]
    min
    =a[i][n]; //记下它的行号和列号,使它成为新的最小值
    row
    =i; colum=n; } printf("第%d行第%d列最小值是%d",row+1,colum+1,min); //由于数组是从0开始计数,所以要使它的行和列数加一 printf(" "); return 0; }

  • 相关阅读:
    音频、摄像机操作
    调用系统相机及摄像机
    图片的放大缩小
    haxm intelx86加速模拟器的安装
    mac eclipse 下安装subclipse
    文件多线程下载实现
    windows与linux之间传输文件
    ZeroMQ接口函数之 :zmq_setsockopt –设置ZMQ socket的属性
    使用C语言在windows下一口气打开一批网页
    Net-SNMP是线程安全的吗
  • 原文地址:https://www.cnblogs.com/laurenliu1994/p/3391740.html
Copyright © 2020-2023  润新知