溫馨提示×

C語言中scanf與指針數組的使用技巧

小樊
122
2024-09-10 10:23:13
欄目: 編程語言

在C語言中,scanf函數用于從標準輸入(通常是鍵盤)讀取數據

  1. 使用指針數組存儲字符串:
#include<stdio.h>

int main() {
    char *names[3]; // 定義一個指針數組,用于存儲字符串
    for (int i = 0; i < 3; i++) {
        names[i] = malloc(100); // 為每個指針分配內存空間
        printf("請輸入第%d個名字:", i + 1);
        scanf("%s", names[i]); // 使用scanf讀取字符串
    }

    // 打印輸入的名字
    for (int i = 0; i < 3; i++) {
        printf("第%d個名字是:%s\n", i + 1, names[i]);
    }

    // 釋放內存
    for (int i = 0; i < 3; i++) {
        free(names[i]);
    }

    return 0;
}
  1. 使用指針數組存儲整數:
#include<stdio.h>

int main() {
    int n, *numbers;
    printf("請輸入整數的個數:");
    scanf("%d", &n);

    numbers = (int *)malloc(n * sizeof(int)); // 為整數分配內存空間

    for (int i = 0; i < n; i++) {
        printf("請輸入第%d個整數:", i + 1);
        scanf("%d", &numbers[i]); // 使用scanf讀取整數
    }

    // 打印輸入的整數
    for (int i = 0; i < n; i++) {
        printf("第%d個整數是:%d\n", i + 1, numbers[i]);
    }

    // 釋放內存
    free(numbers);

    return 0;
}
  1. 使用指針數組存儲浮點數:
#include<stdio.h>

int main() {
    float *scores;
    int n;
    printf("請輸入成績的個數:");
    scanf("%d", &n);

    scores = (float *)malloc(n * sizeof(float)); // 為浮點數分配內存空間

    for (int i = 0; i < n; i++) {
        printf("請輸入第%d個成績:", i + 1);
        scanf("%f", &scores[i]); // 使用scanf讀取浮點數
    }

    // 打印輸入的成績
    for (int i = 0; i < n; i++) {
        printf("第%d個成績是:%.2f\n", i + 1, scores[i]);
    }

    // 釋放內存
    free(scores);

    return 0;
}

注意:在使用scanf讀取字符串時,需要確保輸入的字符串長度不超過分配的內存空間。在實際編程中,為了避免緩沖區溢出,可以使用fgets函數代替scanf讀取字符串。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女