C语言 菜鸡求问
答案:2 悬赏:40
解决时间 2021-03-02 16:57
- 提问者网友:一抹荒凉废墟
- 2021-03-02 04:56
C语言 菜鸡求问
最佳答案
- 二级知识专家网友:逃夭
- 2021-03-02 05:34
先不说输出,你把new_car的指针给list,又改变new_car的内容,这样list里面的元素全部都是一样的,跟你最后更改的那次相同。
看你输出函数是单个输出的,加个for循环调用你写的输出函数,参数传入car_list[i],如果想一次输出多个,可以修改你输出函数的参数,传入car_list和输出个数。
代码不帮你写了,思路不清楚可以再问。
追问:思路我清楚了 代码就写一下嘛
追答://最开始的回答错误,请无视
main函数中加上下面这个for循环
for (int i = 0; i < 3; i++)
{
printf("第%d个车的信息:\n", i);
print_car(&car_list[i]);
}
print_car实现:
void print_car(Car *car)
{
if (NULL == car)
{
printf("The input pointer is NULL, Error");
return;
}
printf("Car make: %s\n", car->make);
printf("Car model: %s\n", car->model);
printf("Car year: %d\n", car->year);
printf("Car mileage: %d\n", car->mileage);
printf("Car transmission: %c\n", car->transmission);
}
看你输出函数是单个输出的,加个for循环调用你写的输出函数,参数传入car_list[i],如果想一次输出多个,可以修改你输出函数的参数,传入car_list和输出个数。
代码不帮你写了,思路不清楚可以再问。
追问:思路我清楚了 代码就写一下嘛
追答://最开始的回答错误,请无视
main函数中加上下面这个for循环
for (int i = 0; i < 3; i++)
{
printf("第%d个车的信息:\n", i);
print_car(&car_list[i]);
}
print_car实现:
void print_car(Car *car)
{
if (NULL == car)
{
printf("The input pointer is NULL, Error");
return;
}
printf("Car make: %s\n", car->make);
printf("Car model: %s\n", car->model);
printf("Car year: %d\n", car->year);
printf("Car mileage: %d\n", car->mileage);
printf("Car transmission: %c\n", car->transmission);
}
全部回答
- 1楼网友:一秋
- 2021-03-02 06:33
你这段程序有问题,你是想把new_car后面的强制转换为结构体类型,但是这语法有错误哦。。。。
我猜你是想这样?#include <stdio.h>
#include <string.h>
typedef struct car
{
char make[30];
char model[30];
int year;
int mileage;
char transmission;
} Car;
int main(void)
{
int i=0;
Car car_list[3];
for(i=0;i<3;i++)
{
printf("Enter the car's make:");
scanf("%s",car_list[i].make);
printf("Enter the car's model:");
scanf("%s",car_list[i].model);
printf("Enter the car's year:");
scanf("%d",&car_list[i].year);
printf("Enter car's mileage:");
scanf("%d",&car_list[i].mileage);
printf("Enter the car's transmission('A' or 'M'):");
scanf("%c",&car_list[i].transmission);
}
for(i=0;i<3;i++)
{
printf("%s ",car_list[i].make);
printf("%s ",car_list[i].model);
printf("%d ",car_list[i].year);
printf("%d ",car_list[i].mileage);
printf("%c ",car_list[i].transmission);
}
return 0;
}
如果你想让car_list数组的数量没有限制的话,你可以考虑用链表
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯