在完成布置的任务时发现的问题

img

img


我在定义诊单中的药品名称用了图中的方法,但是在输入时只能输入一个药品,没有满足输入多个药品的要求,有没有什么方法可以在输入时输入多个药品?跪求答案,希望大哥,大姐们说的明白一点,我才开始学,有些东西搞不懂。

如果只是单纯药品名 那就 输入几个字符串 用空格空开 (我一般都是用空格当间隔符 用其他符号也可以 在scanf语句中体现出来就可以)

scanf("%s %s %s %s",name1,name2,name3,name4);

如果是几个药品的所有信息那么同样可以用空格隔开信息 但是这样就会很长大致模拟了一下

#include<stdio.h>
 struct drug{
     char name[20];
     char id[10];
     char func[50];
     char use [50];
     float price;
 };
 int main(){
     struct drug d[3];
     for(int i = 0;i<3;i++){
         scanf("%s %s %s %s %f",d[i].name,d[i].id,d[i].func,d[i].use,&d[i].price);
    }
    printf("名称\tID\t功能\t用法\t价格\n");
    for(int i = 0;i<3;i++){
         printf("%s\t%s\t%s\t%s\t%f\n",d[i].name,d[i].id,d[i].func,d[i].use,d[i].price);
    }
 }

运行效果:

img

也不一定要像我这样一行输入完毕 可以输入一个药品的信息然后回车 换行再写第二个 同样可以

img