|
50鱼币
在做小甲鱼课后作业时遇到的问题,原题在图片里。我想通过函数调用指针数组去完成操作,但打印时出了问题。
(就是能具体细细讲讲每个指针的含义,谢谢了)
- #include <stdio.h>
-
- struct Test
- {
- char Name[10];
- int Age;
- char Date_one[20];
- char Date_two[20];
- };
-
- struct Test *regester(int n)
- {
- struct Test *pt[n];
- for(int i=0; i<n; i++)
- {
- printf("\n请输入姓名:");
- scanf("%s", ((*pt)+i)->Name);
- printf("请输入年龄:");
- scanf("%d", &((*pt)+i)->Age);
- printf("是否接种过疫苗(Y/N)?");
- getchar();
- if(getchar() == 'N')
- {
- printf("请尽快接种!");
- continue;
- }
- printf("请输入第一针疫苗接种日期(yyyy-mm-dd):");
- scanf("%s", ((*pt)+i)->Date_one);
- printf("是否接种过第二针疫苗(Y/N)?");
- getchar();
- if(getchar() == 'N')
- {
- printf("请尽快接种!");
- continue;
- }
- printf("请输入第二针疫苗接种日期(yyyy-mm-dd):");
- scanf("%s", ((*pt)+i)->Date_two);
- }
-
- return *pt;
- }
- void print_date(int n, struct Test *pt[])
- {
- for(int i=0; i<n; i++)
- {
- printf("姓名:%s,年龄:%d\n", ((*pt)+i)->Name, ((*pt)+i)->Age);
- if(((*pt)+i)->Date_one == NULL)
- {
- printf("未接种疫苗!");
- continue;
- }
- printf("第一针疫苗接种日期:%s", ((*pt)+i)->Date_one);
- if(((*pt)+i)->Date_two == NULL)
- {
- printf("未接种第二针疫苗!");
- continue;
- }
- printf("第一针疫苗接种日期:%s", ((*pt)+i)->Date_two);
- }
- }
-
- int main()
- {
- int n;
- printf("请输入接种人数:");
- scanf("%d", &n);
- struct Test *pt[n];
-
- *pt = regester(n);
- print_date(n, pt);
-
- return 0;
- }
复制代码
|
|