如何使用list()在C中创建一个列表? (试图保存和从列表中提取元素)
如何使用list()在C中创建列表?不是一个链表,只是一个常规的元素列表。我来自python,我可以使用list = []。但是,当我在Google“C列表”中唯一出现的是链接列表。看来有一个函数列表(),我假设创建一个列表。我无法弄清楚如何提取第一和第二值:如何使用list()在C中创建一个列表? (试图保存和从列表中提取元素)
int L = list(1,2,3,4,5); int a = L[0];
int b = L[1];
我需要在C列表存储两个值,一个分子(n)和分母(d)。我正在创建一个分数计算器,我希望n和d是存储在分数(列表)中的两个值。我不想写f1 =(n1,d1)到fk =(nk,dk)的程序。
回答:
我看到2个问题有:
- 如何使用数据结构来存储非原子型可变
- 如何创建这样的结构的一个(同质)阵列。
Python列表没有直接的等价物,因为C无法在任意长度的货架上存储异构数据类型。你可能需要一些更深层次的背景阅读,但这里的一些示例代码,这可能有助于:
#include <stdio.h> #include <stdlib.h>
// Define a structure type, no builtin tuples
typedef struct {
int n;
int d;
} Fraction;
int main(int argc, char **argv) {
int i;
int N = 5;
Fraction f0 = {2, 3}; // Directly create & initialize data
Fraction *fractions; // variable length ponter to array of Fractions
// Using dynamic allocation of arrays
fractions = (Fraction *) malloc(N*sizeof(Fraction));
fractions[0] = f0;
fractions[1] = (Fraction) {5, 7}; // This needs to be explicitly casted to Fraction type
fractions[2] = (Fraction) {11, 13};
fractions[3] = (Fraction) {17, 19};
fractions[4] = (Fraction) {23, 29};
printf ("Fraction0 -> numerator: %d, denominator: %d\n", f0.n, f0.d);
for (i=1; i < N; i++) {
printf ("Fractions[%d] -> numerator: %d, denominator: %d\n", i, fractions[i].n, fractions[i].d);
}
}
这应该打印:
Fraction0 - >分子:2,分母:3个
分数[ 1] - >分子:5,分母:7个
级分[2] - >分子:11,分母:13
级分[3] - >分子:17,分母:19个
级分[4] - >分子:23,分母:29
回答:
C中没有这样一个列表。list
不在C标准库中,所以我不确定你在哪里找到了。在C中,你通常会使用一个数组。
int L[] = {1,2,3,4,5}; int a = L[0];
int b = L[1];
回答:
在C中的等效将是元件的阵列:
int x[10];
是int
秒的阵列及其大小= 10
初始化C中的阵列可以以几种进行例如:
int x[10] = {0,1,2,3,4,5,6,7,8,9}; int x[] = {0,1,2,3,4,5,6,7,8,9};
或者您可以分配单个元素:
int x[10]; x[0] = 0;
x[1] = 1;
.
.
x[9] = 9;
您应该阅读更多关于数组以及它们如何在c中工作的内容。
以上是 如何使用list()在C中创建一个列表? (试图保存和从列表中提取元素) 的全部内容, 来源链接: utcz.com/qa/258360.html