当前位置: 首页 > news >正文

.net做网站用mvc网站设计规划

.net做网站用mvc,网站设计规划,网站首页设计方案,湖南建筑信息网目录 前言 1.数组 1.定义 2.初始化 3.销毁 4.取值 5.设置值 6.完整代码 前言 这篇博客主要介绍数据结构中的数组和广义表的用法。 1.数组 在数据结构中,数组是一种线性数据结构,它由一组连续的相同类型的元素组成,每个元素都有一个唯…

目录

前言

1.数组

1.定义

2.初始化

3.销毁

4.取值

5.设置值

6.完整代码


前言

        这篇博客主要介绍数据结构中的数组和广义表的用法。

1.数组

        在数据结构中,数组是一种线性数据结构,它由一组连续的相同类型的元素组成,每个元素都有一个唯一的索引或者下标来标识其在数组中的位置。

        数字的常用操作除了初始化和销毁之外,只有存取元素和修改元素值的操作。

1.定义

        我们一般使用顺序结构来定义数组。

#define MAX_ARRAY_DIM 8 // 设置数组维数的最大值为8
typedef struct {int *base;      // 数组元素基址,由initArray分配int dim;        // 数组维数int *bounds;    // 数组维界基址,由initArray分配int *constants; // 数组影像函数常量基址,由initArray分配
} Array;

2.初始化

//初始化
int initArray(Array *array, int dim, ...) {if (dim < 1 || dim > MAX_ARRAY_DIM) return 0;array->dim = dim;array->bounds = (int *)malloc(dim * sizeof(int));if (!array->bounds) return 0;int total = 1;va_list ap;va_start(ap, dim);for (int i = 0; i < dim; ++i) {array->bounds[i] = va_arg(ap, int);if (array->bounds[i] < 0) return 0;total *= array->bounds[i];}va_end(ap);array->base = (int *)malloc(total * sizeof(int));if (!array->base) return 0;array->constants = (int *)malloc(dim * sizeof(int));if (!array->constants) return 0;array->constants[dim - 1] = 1;for (int i = dim - 2; i >= 0; --i)array->constants[i] = array->bounds[i + 1] * array->constants[i + 1];return 1;
}

3.销毁

int destroyArray(Array *array) {if (!array->base) return 0;free(array->base);array->base = NULL;if (!array->bounds) return 0;free(array->bounds);array->bounds = NULL;if (!array->constants) return 0;free(array->constants);array->constants = NULL;return 1;
}

4.取值

int getValue(Array *array, ...) {va_list ap;va_start(ap, array);int index = 0;for (int i = 0; i < array->dim; ++i) {int subscript = va_arg(ap, int);if (subscript < 0 || subscript >= array->bounds[i]) {va_end(ap);return 0;}index += array->constants[i] * subscript;}va_end(ap);return array->base[index];
}

5.设置值

int setValue(Array *array, int value, ...) {va_list ap;va_start(ap, value);int index = 0;for (int i = 0; i < array->dim; ++i) {int subscript = va_arg(ap, int);if (subscript < 0 || subscript >= array->bounds[i]) {va_end(ap);return 0;}index += array->constants[i] * subscript;}va_end(ap);array->base[index] = value;return 1;
}

6.完整代码

#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>#define MAX_ARRAY_DIM 8 // 设置数组维数的最大值为8
typedef struct {int *base;      // 数组元素基址,由initArray分配int dim;        // 数组维数int *bounds;    // 数组维界基址,由initArray分配int *constants; // 数组影像函数常量基址,由initArray分配
} Array;// 基本操作的函数原型说明
int initArray(Array *array, int dim, ...);
int destroyArray(Array *array);
int getValue(Array *array, ...);
int setValue(Array *array, int value, ...);
void testArrayOperations(void);//初始化
int initArray(Array *array, int dim, ...) {if (dim < 1 || dim > MAX_ARRAY_DIM) return 0;array->dim = dim;array->bounds = (int *)malloc(dim * sizeof(int));if (!array->bounds) return 0;int total = 1;va_list ap;va_start(ap, dim);for (int i = 0; i < dim; ++i) {array->bounds[i] = va_arg(ap, int);if (array->bounds[i] < 0) return 0;total *= array->bounds[i];}va_end(ap);array->base = (int *)malloc(total * sizeof(int));if (!array->base) return 0;array->constants = (int *)malloc(dim * sizeof(int));if (!array->constants) return 0;array->constants[dim - 1] = 1;for (int i = dim - 2; i >= 0; --i)array->constants[i] = array->bounds[i + 1] * array->constants[i + 1];return 1;
}int destroyArray(Array *array) {if (!array->base) return 0;free(array->base);array->base = NULL;if (!array->bounds) return 0;free(array->bounds);array->bounds = NULL;if (!array->constants) return 0;free(array->constants);array->constants = NULL;return 1;
}int getValue(Array *array, ...) {va_list ap;va_start(ap, array);int index = 0;for (int i = 0; i < array->dim; ++i) {int subscript = va_arg(ap, int);if (subscript < 0 || subscript >= array->bounds[i]) {va_end(ap);return 0;}index += array->constants[i] * subscript;}va_end(ap);return array->base[index];
}int setValue(Array *array, int value, ...) {va_list ap;va_start(ap, value);int index = 0;for (int i = 0; i < array->dim; ++i) {int subscript = va_arg(ap, int);if (subscript < 0 || subscript >= array->bounds[i]) {va_end(ap);return 0;}index += array->constants[i] * subscript;}va_end(ap);array->base[index] = value;return 1;
}void testArrayOperations(void) {Array array;if (initArray(&array, 2, 3, 4)) {printf("Array initialized successfully.\n");printf("Setting values...\n");for (int i = 0; i < 3; ++i) {for (int j = 0; j < 4; ++j) {if (setValue(&array, i * 10 + j, i, j)) {printf("Value set at (%d, %d).\n", i, j);} else {printf("Failed to set value at (%d, %d).\n", i, j);}}}printf("Getting values...\n");for (int i = 0; i < 3; ++i) {for (int j = 0; j < 4; ++j) {int value;if (getValue(&array, i, j, &value)) {printf("Value at (%d, %d): %d\n", i, j, value);} else {printf("Failed to get value at (%d, %d).\n", i, j);}}}printf("Destroying array...\n");if (destroyArray(&array)) {printf("Array destroyed successfully.\n");} else {printf("Failed to destroy array.\n");}} else {printf("Failed to initialize array.\n");}
}
int main(int argc, const char *argv[]) {testArrayOperations();return 0;
}

http://www.hkea.cn/news/697333/

相关文章:

  • 个人网站 百度推广全球搜索大全
  • 网站消息推送5118素材网站
  • 天津 响应式网站设计企业网站模板免费
  • 网站用花生壳nas做存储百度seo发包工具
  • wordpress cache深圳纯手工seo
  • 怎样找到正规代加工网站百度地图3d实景地图
  • 潍坊网站建设公司网站搭建免费
  • 惠州做网站好的公司下载百度语音导航地图安装
  • 春节网站怎么做小说排行榜百度搜索风云榜
  • 商城服务是什么软件seo是指什么岗位
  • 无锡网站建设有限公司网站快速收录的方法
  • 网站建设通报推广网站多少钱
  • 网络推广公司成都seo排名优化教程
  • 一台手机登录微信网页版西安优化外
  • 如何做旅游攻略网站长沙seo优化推荐
  • 长春火车站电话咨询电话快排seo
  • 龙城建设网站公司网站内容优化方法
  • 南通网站建设搭建网站卖链接
  • 驻马店市做网站seo臻系统
  • 找公司做网站怎么图片都要自己找百度推广官网电话
  • 网站小样用什么做seo外链平台热狗
  • 建站点的步骤sem是什么
  • 深圳专业做网站的衡水网站优化推广
  • 徐汇科技网站建设2345中国最好的网址站
  • 邢台论坛吧百度seo收录软件
  • 做国外服务器网站吗怎么让百度搜索靠前
  • 做动态图网站有哪些自建站怎么推广
  • web网站开发课程设计报告seo技术培训沈阳
  • 会宁网站建设公司网站优化助手
  • 网站设计制作体会2023年5月最新疫情