c语言数组小谈

简介:

#include <stdio.h>
#include <stdlib.h>

#define N 5
int main() {
    double score[5];
    int i;
    for (i = 0; i< N ;i++)
    {
        printf("请输入第%d门课的成绩:",i+1);
        scanf("%lf",&score[i]);
    }

    printf("---------------------\n");

    int j;
    for (j = 0; j< N ;j++)
    {
        printf("第%d门课的成绩为%.2lf\n",j+1,score[j]);
    }

    return 0;
}

综合的小练习

#include <stdio.h>
#include <stdlib.h>

//宏定义布尔类型
#define BOOL int
#define TRUE 1
#define FALSE 0

int main() {
    int arr[] = {8,4,2,1,23,344,12};

    // 循环输出数组的值
    int length;

    length = sizeof(arr)/sizeof(arr[0]);

    int i;
    for (i=0;i<length;i++) {
        printf("数组第%d个元素值为%d\n",i+1,arr[i]);
    }

    // 求数组中所有元素的和与平均值
    double sum = 0;
    double average;
    for (i=0;i<length;i++) {
        sum += arr[i];
    }

    average = sum / length;

    printf("数组元素的和为:%.2lf\n",sum);
    printf("数组元素的平均值为:%.2lf\n",average);

    // 输入数值判断是否存在数组中,循环五次
    int guessNum;
    int count = 0;
    BOOL isInArray;
    while (count < 5) {
        printf("请输入数值:");
        scanf("%d",&guessNum);

        isInArray = FALSE;
        for (i=0;i<length;i++) {
            if (guessNum == arr[i]) {
                isInArray = TRUE;
                break;
            }
        }

        if (isInArray) {
            printf("输入的数值在数组中\n");
        } else {
            printf("输入的数值不在数组中\n");
        }

        count++;
    }





    return 0;
}

冒泡排序

#include <stdio.h>
#include <stdlib.h>

//宏定义布尔类型
#define SIZE 5

int main() {
    // 循环录入5个整型数字,进行降序排列后输出

    // 冒泡排序

    int arr[SIZE] = {};
    int i;
    printf("请输入5个数字:\n");
    for (i = 0;i<SIZE;i++) {
        scanf("%d",&arr[i]);
    }

    for (i=0;i<SIZE;i++) {
        printf("输入第%d个数字为:%d\n",i,arr[i]);
    }

    // 进行冒泡排序,降序排列,大的排在前面,小的排在后面
    bubble_sort(arr,SIZE);
    printf("降序排序后的顺序为:\n");

    for (i=0;i<SIZE;i++) {
        printf("输入第%d个数字为:%d\n",i,arr[i]);
    }



    return 0;
}

// 冒泡函数
void bubble_sort(int a[],int n) {
    int i,j,temp;
    for (i=0;i<n-1;i++) { // 只需要n-1轮

        // 每一轮的比较
        for (j=0;j<n-1-i;j++) { // 每一轮比较的次数都会越来越少
            // 核心的判断
            if (a[j] < a[j+1]) {
                // 交换位置,大的排在前面
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }
}

删除真心费劲,感觉还是php操作数组更加便捷。

#include <stdio.h>
#include <stdlib.h>

int main() {
    // 数组删除元素
    int count = 5;
    double powers[] = {42322,25771,40907,41234,40767};
    double deletePower; // 用户要删除的战力值
    int deleteIndex = -1; // 要删除的战力值的下标
    int i;

    printf("请输入要删除的战力值:\n");
    scanf("%lf",&deletePower);

    for (i= 0;i<count;i++) {
        if (deletePower == powers[i]) {
            // 记录下标
            deleteIndex = i;
            break;
        }
    }

    // 判断是否找到
    if (deleteIndex >=0) {
        // 从下标开始,后面一个覆盖前面一个数字
        for (i = deleteIndex ; i <count -1;i++) {
            powers[i] = powers[i+1];
        }
    } else {
        printf("很遗憾,没有找到要删除的战力值");
    }

    for (i=0;i<count-1;i++) {
        printf("第%d个元素为:%.2lf\n",i,powers[i]);
    }



    return 0;
}

二维数组

#include <stdio.h>
#include <stdlib.h>

int main() {
    // 使用二维数组表示学生的成绩,并展示
    double scores[4][3] = {
        {98,67,93},
        {88,87,93},
        {98,65,93},
        {68,67,93}
    };

    int i,j;
    // 使用双循环输出
    for (i = 0;i<4;i++) {
        for (j=0;j<3;j++) {
            printf("%.2lf\t",scores[i][j]);
        }

        printf("\n");
    }

    return 0;
}

不如php灵活。




本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/7905954.html,如需转载请自行联系原作者

相关文章
|
20天前
|
传感器 算法 安全
【C语言】两个数组比较详解
比较两个数组在C语言中有多种实现方法,选择合适的方法取决于具体的应用场景和性能要求。从逐元素比较到使用`memcmp`函数,再到指针优化,每种方法都有其优点和适用范围。在嵌入式系统中,考虑性能和资源限制尤为重要。通过合理选择和优化,可以有效提高程序的运行效率和可靠性。
63 6
|
23天前
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
44 5
|
23天前
|
存储 程序员 编译器
C 语言数组与指针的深度剖析与应用
在C语言中,数组与指针是核心概念,二者既独立又紧密相连。数组是在连续内存中存储相同类型数据的结构,而指针则存储内存地址,二者结合可在数据处理、函数传参等方面发挥巨大作用。掌握它们的特性和关系,对于优化程序性能、灵活处理数据结构至关重要。
|
27天前
|
存储 C语言 计算机视觉
在C语言中指针数组和数组指针在动态内存分配中的应用
在C语言中,指针数组和数组指针均可用于动态内存分配。指针数组是数组的每个元素都是指针,可用于指向多个动态分配的内存块;数组指针则指向一个数组,可动态分配和管理大型数据结构。两者结合使用,灵活高效地管理内存。
|
27天前
|
存储 NoSQL 编译器
C 语言中指针数组与数组指针的辨析与应用
在C语言中,指针数组和数组指针是两个容易混淆但用途不同的概念。指针数组是一个数组,其元素是指针类型;而数组指针是指向数组的指针。两者在声明、使用及内存布局上各有特点,正确理解它们有助于更高效地编程。
|
1月前
|
存储 人工智能 算法
数据结构实验之C 语言的函数数组指针结构体知识
本实验旨在复习C语言中的函数、数组、指针、结构体与共用体等核心概念,并通过具体编程任务加深理解。任务包括输出100以内所有素数、逆序排列一维数组、查找二维数组中的鞍点、利用指针输出二维数组元素,以及使用结构体和共用体处理教师与学生信息。每个任务不仅强化了基本语法的应用,还涉及到了算法逻辑的设计与优化。实验结果显示,学生能够有效掌握并运用这些知识完成指定任务。
51 4
|
2月前
|
存储 编译器 C语言
【c语言】数组
本文介绍了数组的基本概念及一维和二维数组的创建、初始化、使用方法及其在内存中的存储形式。一维数组通过下标访问元素,支持初始化和动态输入输出。二维数组则通过行和列的下标访问元素,同样支持初始化和动态输入输出。此外,还简要介绍了C99标准中的变长数组,允许在运行时根据变量创建数组,但不能初始化。
55 6
|
2月前
|
存储 人工智能 BI
C语言:数组的分类
C语言中的数组分为一维数组、多维数组和字符串数组。一维数组是最基本的形式,用于存储一系列相同类型的元素;多维数组则可以看作是一维数组的数组,常用于矩阵运算等场景;字符串数组则是以字符为元素的一维数组,专门用于处理文本数据。
|
2月前
|
存储 算法 C语言
C语言:什么是指针数组,它有什么用
指针数组是C语言中一种特殊的数据结构,每个元素都是一个指针。它用于存储多个内存地址,方便对多个变量或数组进行操作,常用于字符串处理、动态内存分配等场景。
|
2月前
|
存储 C语言
C语言:一维数组的不初始化、部分初始化、完全初始化的不同点
C语言中一维数组的初始化有三种情况:不初始化时,数组元素的值是随机的;部分初始化时,未指定的元素会被自动赋值为0;完全初始化时,所有元素都被赋予了初始值。