#include <stdio.h>
struct Car {
char brand[50];
char model[50];
int year;
};
int main() {
struct Car car1 = {"BMW", "X5", 1999};
struct Car car2 = {"Ford", "Mustang", 1969};
struct Car car3 = {"Toyota", "Corolla", 2011};
printf("%s %s %d\n", car1.brand, car1.model, car1.year);
printf("%s %s %d\n", car2.brand, car2.model, car2.year);
printf("%s %s %d\n", car3.brand, car3.model, car3.year);
return 0;
}
/*
BMW X5 1999
Ford Mustang 1969
Toyota Corolla 2011
*/
這里的結構只有 3 個變數(car1、car2、car3)。但是,如果它有很多汽車,我怎么能使用回圈制作相同的代碼(列印所有值)?
uj5u.com熱心網友回復:
你需要一個s陣列Car,像這樣
#include <stdio.h>
struct Car {
char brand[50];
char model[50];
int year;
};
int main() {
struct Car cars[] = {
{"BMW", "X5", 1999},
{"Ford", "Mustang", 1969},
{"Toyota", "Corolla", 2011},
{"Mercedes", "C197", 2010 }
};
for(size_t i = 0; i < sizeof(cars)/sizeof(cars[0]); i) {
printf("%s %s %d\n", cars[i].brand, cars[i].model, cars[i].year);
}
return 0;
}
uj5u.com熱心網友回復:
你需要一個陣列struct Car。
它的作業原理與任何其他陣列幾乎相同,不同之處在于每個元素現在都有額外的欄位,即結構上的欄位。
這是一個例子:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 100
struct Car {
char brand[50];
char model[50];
int year;
};
int main(void) {
struct Car cars[SIZE];
for (int i = 0; i < SIZE; i ) {
// Initialize
strcpy(cars[i].brand, "BMW"); // or any other brand
strcpy(cars[i].model, "X5");
cars[i].year = 1999;
}
for (int i = 0; i < SIZE; i ) {
// Print
printf("Car %d:\n", i 1);
printf("%s %s %d\n", cars[i].brand, cars[i].model, cars[i].year);
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/486366.html
