我想打印所有輸入的元素。相反,我的代碼打印最近輸入的元素兩次。結構字符串數組打印最後輸入的元素
這裏是我的代碼:
#include<stdio.h>
void f(struct ar *a);
void d(struct ar *a);
struct ar
{
char name[50];
};
int main()
{
struct ar a;
f(&a);
d(&a);
}
void f(struct ar *a)
{
int i;
for(i=0;i<2;i++)
{
printf("enter name:");
gets(a->name);
}
}
void d(struct ar *a)
{
int i;
for(i=0;i<2;i++)
{
puts(a->name);
}
}
例如:
輸入
name:john
name:kendall
輸出
kendall
kendall
您不應該使用'gets()'使用'fgets()'來代替。這是* gcc *對它的說明**警告:'gets'函數是危險的,不應該被使用。** –
您需要創建一個鏈表。 [鏈接的數據結構](http://en.wikipedia.org/wiki/Linked_data_structure) – chengpohi
因此,在你的循環中,你可以兩次獲取/打印「a-> name」,而不必將它移動到任何地方。那麼你期望得到什麼? –