私のプログラムは3つの学生情報 "id、name、およびmarks"をとり、最初のループは期待通りに実行され、すべての変数は順番に並んでいますが、2番目のループ(など)では、 gets(e[i].stname)
をスキップしてください。生徒の名前に関する質問を印刷し、直接ジャンプして第1マークを尋ねます。私はデバッグを使ってみましたが、私の経験はあまり役に立たなかった。ループ内で繰り返されるとき、プログラムは「gets(string)」をスキップしますか?
#include<stdio.h>
struct stud
{
int stno;
char stname[20];
int stmark[3];
};
void main()
{
int n, m, i;
struct stud e[3];
for (i = 0; i < 3; i++)
{
printf("enter the name of number %d student: \n", i+1);
gets(e[i].stname);
printf("enter the number of student number %d:\n", i+1);
scanf_s("%d", &e[i].stno);
for (m = 1; m < 4; m++)
{
printf("enter the mark of module %d \n",m);
scanf_s("%d", &e[i].stmark[m-1]);
}
}
}
なぜこれがC++をマークされていますか?そして、使用して要件を取得していますか? – Fang
CやC++に 'gets'という関数はありません。 [get関数はなぜ危険なので、使用しないでください](https://stackoverflow.com/questions/1694036/why-is-the-gets-function-so-dangerous-that-it-should-使用されていない)。さらに、火災でCを学ぶためのあなたのソースを燃やすことを検討してください。 – Lundin
@Fang im申し訳ありませんが、それは提案タグでした –