c语言数组小谈

c语言数组小谈

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

二维数组

c语言数组小谈

c语言数组小谈

#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,如需转载请自行联系原作者