int i=0;
int array[1000]={0};
srandom(23523);
a0=random();
a1=random();
a2=random();
....
a999=random(); //a0,a1,...a999 are some random numbers
for(i=0;i<999;i++){
....
//array[0]=a0 array[1]=a1 array[2]=a2....array[999]=a999
}
我的目标是将数组中的值更改为a0,a1 ... a999。 如何在C中使用for循环?
答案 0 :(得分:3)
如果你已经知道你不需要循环的值。
int array[3]= { 0, 14, 22 };
答案 1 :(得分:0)
我会添加&#39; a&#39;将值赋入数组,然后将值添加到数组[arrayLength]
int main(){
int i=0, arrayLength=3;
int array[arrayLength]={543}; //int array with 5 element
int a0=0;
int a1=14;
int a2=22;
int aValues[3]={a0, a1, a2}
for(i=0;i<arrayLength;i++){
array[i]=aValues[i];
}
return 1;
}
答案 2 :(得分:0)
这应该适合你:
#include <stdio.h>
#define MAX_SIZE 3
int main() {
int count;
int array1[MAX_SIZE] = {5,4,3};
int array2[MAX_SIZE] = {0, 14, 22};
printf("Values before they get changed:\n");
for(count = 0; count < MAX_SIZE; count++)
printf("%d \n", array1[count]);
for(count = 0; count < MAX_SIZE; count++)
array1[count] = array2[count];
printf("\nValues after they get changed:\n");
for(count = 0; count < MAX_SIZE; count++)
printf("%d \n", array1[count]);
return 0;
}
输出:
Values before they get changed:
5
4
3
Values after they get changed:
0
14
22
答案 3 :(得分:0)
你无法做到你想要的。变量名在运行时不存在。没有办法让aN
N
在C中变量。无论如何,你需要明确地列出变量,你需要以正确的顺序列出它们,你需要在你写它们时知道变量的数量。
// copy variables one by one
array[0] = a0;
array[1] = a1;
array[2] = a2;
或者用指针:
// list the variables to create a pointer array, ending in NULL pointer
int *ptr_array[] = { &a0, &a1, &a2, NULL };
// optinal: assert that ptr_array is not too big
assert(sizeof(array)/sizeof(array[0]) >= sizeof(ptr_array)/sizeof(ptr_array[0])-1);
// copy using loop
for (i = 0 ; ptr_array[i] != NULL ; ++i) {
array[i] = *(ptr_array[i]);
}
根据您的需要,您可以编写一个工具,该工具将生成执行其中一个的代码,这将扫描代码以获取一些特殊标记(注释或宏),提取变量名称并生成C源代码将执行上述操作之一的文件。但这应该是最后的手段,只有在找不到想要的方法时才使用,因为它需要编写代码生成器,并将其集成到构建过程中。无论您遇到什么样的实际问题,都可能有更好的解决方案。