网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Visual Studio 2019官网链接如下
Visual Studio 2019集成的开发环境的特点有
- Visual Studio 2019默认安装Live Share代码协作服务。
- 帮助用户快速编写代码的新欢迎窗口、改进搜索功能、总体性能改进。
- Visual Studio IntelliCode AI帮助。
- 更好的Python虚拟和Conda支持。
- 以及对包括WinForms和WPF在内的.NET Core 3.0项目支持等 。
前面文章的所有数组都在代码中指定了固定的长度。也可以定义其长度在程序运行期间确定的数组。下面是一个示例:
二、一维数组在执行期间确定长度
size\_t size = 0;
printf ("Enter the number of elements you want to store: ") ;
scanf ("%zd", &size) ;
float values[size] ;
- 在这段代码中,把从键盘上读取的一一个值放在
size
中。接着使用size的值指定数组array的长度。 - 因为
size_t
是用实现代码定义的整数类型,所以如果尝试使用%d读取这个值,就会得到一个编译错误。 - %zd中的z告诉编译器,它应用于
size_t
, 所以无论整数类型size_t
是什么,编译器都会使说明符适用于读取操作。
三、二维数组在执行期间确定长度
还可以在执行期间确定二维或多维数组中的任意维或所有维。
例如:
size_ t rows = 0;
size t columns = 0;
printf ("Enter the number of rows you want to store: ") ;
scanf ("%zd",&rows) ;
printf ("Enter the number of columns in a row: ") ;
scanf ("%zd",&columns) ;
float beans [ rows] [columns] ;
- 这里从键盘读取二维数组中的两个维。
- 这两个数组维都在执行期间确定。
四、一维变长数组实例
一维变长数组实例如下所示
- 在下面的程序中,一维变长数组是可以用的。
size\_t nGrades = 10; // Number of grades
printf("Enter the number of grades: ");
scanf("%zd", &nGrades);
int grades[nGrades]; // Array storing nGrades values
long sum = 0L; // Sum of the numbers
float average = 0.0f; // Average of the numbers
printf("\nEnter the %u grades:\n", nGrades); // Prompt for the input
// Read the ten numbers to be averaged
for (size\_t i = 0; i < nGrades; ++i)
{
printf("%2zd> ", i + 1);
scanf("%d", &grades[i]); // Read a grade
sum += grades[i]; // Add it to sum
}
printf("The grades you entered are:\n");
for (size\_t i = 0; i < nGrades; ++i)
{
printf("Grade[%2zd] = %3d ", i + 1, grades[i]);
if ((i + 1) % 5 == 0) // After 5 values
printf("\n"); // Go to a new line
}
average = (float)sum / nGrades; // Calculate the average
printf("\nAverage of the %zd grades entered is: %.2f\n", nGrades, average);
下面是一些输出:
Enter the number of grades: 12
Enter the 12 grades:
1> 56
2> 67
3> 78
4> 67
5> 68
6> 56
7> 88
8> 98
9> 76
10> 75
11> 87
12> 72
The grades you entered are:
Grade[1]=56Grade[2]=67Grade[3]=78Grade[4]=67Grade[5]=68
Grade[6]=56Grade[7]=88Grade[8]=98Grade[9]=76Grade[10]=75
Grade[11] = 87 Grade[12] = 72
Average of the 12 grades entered is: 74.00
- 本例定义了一个变量nGrades来存储要输入的分数个数,并从键盘上读取数值:
size\_t nGrades = 10; // Number of grades
printf("Enter the number of grades: ");
scanf("%zd", &nGrades);
- 再使用读入nGrades的值,来定义包含所需元素个数的grades数组:
int grades[nGrades]; // Array storing nGrades values
显然,数组的长度值必须在这个语句之前定义。.
五、完整程序
本文的完整程序如下所示
5.1 Main.h 文件程序
![img](https://img-blog.csdnimg.cn/img_convert/6261623be6bb2488012b6eb9e216f29c.png)
![img](https://img-blog.csdnimg.cn/img_convert/17e646518a926c052a0049102eaafd34.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**