C++编程基础与Array类应用解析-何洁月教学

需积分: 10 9 下载量 120 浏览量 更新于2024-08-19 收藏 3.83MB PPT 举报
"Array类的应用-C++何洁月教学PPT" C++中的Array类是标准模板库(STL)的一部分,它提供了一种更加安全和方便的方式来处理数组。Array类是固定大小的,其大小在创建时必须指定,并且不可改变。这个类提供了许多成员函数,如访问元素、迭代以及对数组进行操作的功能。 在描述中提到的"例9.2 求范围2~N中的质数,N在程序运行时由键盘输入",这是一个典型的算法问题,可以通过使用Array类来实现。首先,用户会输入一个整数N,然后程序会创建一个大小为N的Array,用于存储是否为质数的信息。数组的每个元素可以初始化为true,表示假设所有数字都是质数。接着,通过遍历2到sqrt(N)之间的所有数字,用每个数字去除数组中的每个元素,如果能被整除,则标记该位置的元素为false,表示不是质数。最后,遍历数组,打印出所有仍为true的索引对应的原始数值,这些就是质数。 在C++课程中,学习的内容包括了以下几个方面: 1. **基础概念和程序设计方法**:学生需要建立起计算机程序设计的基本概念,学习基本的程序设计方法。 2. **C++语言基础**:包括了解C++的历史,理解基本数据类型、表达式、输入输出、控制结构等基础知识。 3. **函数**:深入学习函数的定义和使用,内联函数、默认参数、重载函数、函数模板和系统函数的应用。 4. **面向对象编程**:理解面向对象的思想,学习类和对象的概念,掌握构造函数、析构函数、类的组合以及类模板的使用。 5. **其他高级特性**:虽然没有具体提及,但通常还会涵盖指针、动态内存管理、运算符重载、继承、多态等C++的高级特性。 课程的考核形式可能包括实验、编程作业和考试,以全面评估学生对C++语言和面向对象编程的理解与应用能力。教材和主讲教师何洁月教授将提供深入浅出的讲解,帮助学生逐步提升编程技能和解决问题的能力。 通过这门课程,学生不仅可以掌握C++语言的基础知识,还能建立起面向对象编程的概念,这对于后续学习更复杂的软件开发技术是至关重要的。同时,课程强调实践,通过实验和编程项目,学生将有机会实际操作,巩固理论知识,提升编程实践能力。

#include<stdio.h> #include<stdlib.h> #define N 1000001 struct Array { int a[N]; int alength; int b[N]; int blength; int num; }; void ShowArray(struct Array* array) { printf("c数组元素有:"); for(int i=0;i<(array->alength);i++) printf("%d ",array->a[i]); printf("\n"); } void CreateArray(struct Array* array,int a,int b) { //array = (struct Array*)malloc(sizeof(array)); /*array->alength = 0; array->blength = 0; array->num = 0;*/ printf("a数组元素有:"); for(int i=0;i<a;i++) { scanf("%d",&(array->a[i])); array->alength++; } array->alength = a; ShowArray(array); printf("b数组元素有:"); for(int i=0;i<b;i++) { scanf("%d",&(array->b[i])); array->blength++; } } void SortArray(struct Array* array) { int i = 0; int j = array->alength - array->blength; while((i!=array->alength - array->blength)&&(j!=array->alength)) { if(array->a[i]>array->a[j]) { array->num = array->a[j]; array->a[j] = array->a[i]; array->a[i] = array->num; i++; j++; } else if(array->a[i]<array->a[j]) { i++; j++; } else { array->num = array->a[j+1]; array->a[j+1] = array->a[i]; array->a[i] = array->num; i++; } } } void MergeArray(struct Array* array) { int j = array->alength; array->alength = + array->blength; for(int i=0;i<array->blength;i++) array->a[j] = array->b[i]; SortArray(array); ShowArray(array); } int main() { struct Array* array; int v,r; printf("a数组的长度为:"); scanf("%d",&v); printf("b数组的长度为:"); scanf("%d",&r); CreateArray(array,v,r); MergeArray(array); return 0; } 上面代码哪里错了?

2023-07-16 上传