最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言高級(jí)教程之變長(zhǎng)數(shù)組詳解

 更新時(shí)間:2023年02月06日 10:11:01   作者:編程愛(ài)好者-阿新  
這篇文章主要介紹了C語(yǔ)言中變長(zhǎng)數(shù)組的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、本文的編譯環(huán)境

本文的編譯環(huán)境使用的是集成開(kāi)發(fā)環(huán)境:Visual Studio 2019

Visual Studio 2019官網(wǎng)鏈接如下

Visual Studio 2019官網(wǎng)鏈接

Visual Studio 2019集成的開(kāi)發(fā)環(huán)境的特點(diǎn)有

  • Visual Studio 2019默認(rèn)安裝Live Share代碼協(xié)作服務(wù)。
  • 幫助用戶快速編寫(xiě)代碼的新歡迎窗口、改進(jìn)搜索功能、總體性能改進(jìn)。
  • Visual Studio IntelliCode AI幫助。
  • 更好的Python虛擬和Conda支持。
  • 以及對(duì)包括WinForms和WPF在內(nèi)的.NET Core 3.0項(xiàng)目支持等 。

前面文章的所有數(shù)組都在代碼中指定了固定的長(zhǎng)度。也可以定義其長(zhǎng)度在程序運(yùn)行期間確定的數(shù)組。下面是一個(gè)示例:

二、一維數(shù)組在執(zhí)行期間確定長(zhǎng)度

size_t size = 0;
printf ("Enter the number of elements you want to store: ") ;
scanf ("%zd", &size) ;
float values[size] ;

在這段代碼中,把從鍵盤上讀取的一一個(gè)值放在size中。接著使用size的值指定數(shù)組array的長(zhǎng)度。

因?yàn)閟ize_t是用實(shí)現(xiàn)代碼定義的整數(shù)類型,所以如果嘗試使用%d讀取這個(gè)值,就會(huì)得到一個(gè)編譯錯(cuò)誤。

%zd中的z告訴編譯器,它應(yīng)用于size_t, 所以無(wú)論整數(shù)類型size_t是什么,編譯器都會(huì)使說(shuō)明符適用于讀取操作。

三、二維數(shù)組在執(zhí)行期間確定長(zhǎng)度

還可以在執(zhí)行期間確定二維或多維數(shù)組中的任意維或所有維。

例如:

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

這里從鍵盤讀取二維數(shù)組中的兩個(gè)維。

這兩個(gè)數(shù)組維都在執(zhí)行期間確定。

四、一維變長(zhǎng)數(shù)組實(shí)例

一維變長(zhǎng)數(shù)組實(shí)例如下所示

在下面的程序中,一維變長(zhǎng)數(shù)組是可以用的。

	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

本例定義了一個(gè)變量nGrades來(lái)存儲(chǔ)要輸入的分?jǐn)?shù)個(gè)數(shù),并從鍵盤上讀取數(shù)值:

    size_t nGrades = 10;                    // Number of grades
    printf("Enter the number of grades: ");
    scanf("%zd", &nGrades);

再使用讀入nGrades的值,來(lái)定義包含所需元素個(gè)數(shù)的grades數(shù)組:

int grades[nGrades];                         // Array storing nGrades values

顯然,數(shù)組的長(zhǎng)度值必須在這個(gè)語(yǔ)句之前定義。.

五、完整程序

本文的完整程序如下所示

5.1 Main.h 文件程序

#ifndef MAIN_H
#define MAIN_H

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

#endif

5.2 Main.c 文件程序

#define _CRT_SECURE_NO_WARNINGS

#include "Main.h"

int main()
{
	system("color 3E");

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

	system("pause");
	return 0;
}

以上就是C語(yǔ)言高級(jí)教程之變長(zhǎng)數(shù)組詳解的詳細(xì)內(nèi)容,更多關(guān)于C語(yǔ)言 變長(zhǎng)數(shù)組的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C 語(yǔ)言常用方法技巧

    C 語(yǔ)言常用方法技巧

    本文主要介紹了C語(yǔ)言常用方法技巧。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-03-03
  • C++中signed?main和int?main的區(qū)別

    C++中signed?main和int?main的區(qū)別

    這篇文章介紹了C++中signed?main和int?main的區(qū)別,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • 詳解圖的應(yīng)用(最小生成樹(shù)、拓?fù)渑判?、關(guān)鍵路徑、最短路徑)

    詳解圖的應(yīng)用(最小生成樹(shù)、拓?fù)渑判?、關(guān)鍵路徑、最短路徑)

    這篇文章主要介紹了圖的應(yīng)用(最小生成樹(shù)、拓?fù)渑判?、關(guān)鍵路徑、最短路徑),需要的朋友可以參考下
    2015-08-08
  • c語(yǔ)言中scanf的基本用法

    c語(yǔ)言中scanf的基本用法

    這篇文章主要給大家介紹了關(guān)于c語(yǔ)言中scanf的基本用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • C語(yǔ)言指針引用數(shù)組案例講解

    C語(yǔ)言指針引用數(shù)組案例講解

    這篇文章主要介紹了C語(yǔ)言指針引用數(shù)組案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Pthread?并發(fā)編程線程自底向上深入解析

    Pthread?并發(fā)編程線程自底向上深入解析

    這篇文章主要為大家介紹了Pthread?并發(fā)編程線程自底向上深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Qt GUI圖形圖像開(kāi)發(fā)之QT表格控件QTableView,QTableWidget復(fù)雜表頭(多行表頭) 及凍結(jié)、固定特定的行的詳細(xì)方法與實(shí)例

    Qt GUI圖形圖像開(kāi)發(fā)之QT表格控件QTableView,QTableWidget復(fù)雜表頭(多行表頭) 及凍結(jié)、固定特

    這篇文章主要介紹了Qt GUI圖形圖像開(kāi)發(fā)之QT表格控件QTableView,QTableWidget復(fù)雜表頭(多行表頭) 及凍結(jié)、固定特定的行的詳細(xì)方法與實(shí)例,需要的朋友可以參考下
    2020-03-03
  • C++可變參數(shù)函數(shù)的實(shí)現(xiàn)方法示例

    C++可變參數(shù)函數(shù)的實(shí)現(xiàn)方法示例

    這篇文章主要給大家介紹了關(guān)于C++可變參數(shù)函數(shù)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 如何實(shí)現(xiàn)在C++中調(diào)用C函數(shù)

    如何實(shí)現(xiàn)在C++中調(diào)用C函數(shù)

    這篇文章主要介紹了如何實(shí)現(xiàn)在C++中調(diào)用C函數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C++ auto類型說(shuō)明符

    C++ auto類型說(shuō)明符

    在C++11中引入了auto類型說(shuō)明符,用它就能讓編譯器替我們?nèi)シ治霰磉_(dá)式所屬的類型。當(dāng)然,auto變量必須有初始值,這樣編譯器才能推斷其類型
    2016-03-03

最新評(píng)論

富平县| 银川市| 浦城县| 长沙县| 门头沟区| 怀集县| 鹤庆县| 益阳市| 博白县| 高州市| 罗田县| 陇西县| 灌阳县| 遂平县| 葫芦岛市| 铁岭市| 武穴市| 嘉黎县| 固阳县| 阳春市| 台南市| 确山县| 阳曲县| 芮城县| 江西省| 左权县| 余庆县| 满洲里市| 白城市| 乌恰县| 铜陵市| 册亨县| 宁明县| 乌兰察布市| 宜宾市| 驻马店市| 柳州市| 苍南县| 溧阳市| 巴彦淖尔市| 平昌县|