#include <stdio.h> #include <string.h> struct shebei { char a1[10]; char a2[10]; char a3[10]; }; struct diannao { struct shebei waizhi; struct shebei neizhi; }; int main() { struct diannao x; strcpy(x.waizhi.a1,"鼠标"); strcpy(x.waizhi.a2,"键盘"); strcpy(x.waizhi.a3,"显示器"); strcpy(x.neizhi.a1,"CPU"); strcpy(x.neizhi.a2,"主板"); strcpy(x.neizhi.a3,"显卡"); printf("外置设备:\n"); for(int i=0;i<3;i++) { printf("(%d) %s\n",i+1,x.waizhi.ai); } printf("内置设备:\n"); for(int i=0;i<3;i++) { printf("(%d) %s\n",i+1,x.neizhi.ai); } return 0; } 优化代码 输出全部内容
时间: 2024-04-17 22:25:50 浏览: 24
要优化代码以输出全部设备内容,你可以使用循环来遍历并打印每个设备。以下是修改后的代码:
```c
#include <stdio.h>
#include <string.h>
struct shebei
{
char a1[10];
char a2[10];
char a3[10];
};
struct diannao
{
struct shebei waizhi;
struct shebei neizhi;
};
int main()
{
struct diannao x;
strcpy(x.waizhi.a1, "鼠标");
strcpy(x.waizhi.a2, "键盘");
strcpy(x.waizhi.a3, "显示器");
strcpy(x.neizhi.a1, "CPU");
strcpy(x.neizhi.a2, "主板");
strcpy(x.neizhi.a3, "显卡");
printf("外置设备:\n");
for (int i = 0; i < 3; i++)
{
if (i == 0)
printf("(%d)%s\n", i + 1, x.waizhi.a1);
else if (i == 1)
printf("(%d)%s\n", i + 1, x.waizhi.a2);
else if (i == 2)
printf("(%d)%s\n", i + 1, x.waizhi.a3);
}
printf("内置设备:\n");
for (int i = 0; i < 3; i++)
{
if (i == 0)
printf("(%d)%s\n", i + 1, x.neizhi.a1);
else if (i == 1)
printf("(%d)%s\n", i + 1, x.neizhi.a2);
else if (i == 2)
printf("(%d)%s\n", i + 1, x.neizhi.a3);
}
return 0;
}
```
这样,你将能够使用循环遍历并打印出所有的外置设备和内置设备。