一个c语言程序是由_一个c语言程序的很小很小问题?
我有以下一个c语言程序:
#include <stdio.h>
#include <stdlib.h>
typedef struct person
{
int id;
char name[64];
int age;
}person;
void printdata(person *sourcedata)
{
printf("id=%d\n",sourcedata->id);
printf("name=%s\n",sourcedata->name);
printf("age=%d\n",sourcedata->age);
printf("_______________________________________________\n");
}
void copydata(person *from,person *to)
{
*to = *from;
}
void sortagedata(person *sourcedata,int sourcelen)
{
}
void main()
{
person per1={1,"lili",22},per2={2,"wuwu",25},per3={3,"xiaoxiao",20},per4={4,"bigbig",29},per5={5,"xiaowu",23};
person *p1,*p2;
person per6;
person *perarray;
int num = 6,i = 0;
perarray = (person *)malloc(sizeof(person)*num);
copydata(&per1,&per6);
perarray[0] = per1;
perarray[1] = per2;
perarray[2] = per3;
perarray[3] = per4;
perarray[4] = per5;
perarray[5] = per6;
for(i=0;i<num;++i)
{
printf("第%d个数组的数据是:\n",i+1);
printdata(&perarray[i]);
}
system("pause");
}
输出结果也是我想要的,但是在进行perarray数组赋值时即:
perarray[1] = per2;
perarray[2] = per3;
perarray[3] = per4;
perarray[4] = per5;
perarray[5] = per6;
我个人认为也没有错误,但是效率不高,假如我有一万个数据赋值给perarray这个数组,我就要做一万行这样的语句,有什么办法用循环或者其它办法可以使有一万个数据只要写几行语句就能实现给一万个数据赋值给perarray这个数组?
最佳答案
unsigned int i = 0, j = 10000;
person per[j][]={{1,"lili",22},{2,"wuwu",25}......}
for(; i<j; i++)
{
perarray[i] = per[i];
}
其他回答
暂无其它回答!