PR

C言語プログラミング学習ぼく、なぜか意図したとおりに動かない

なんJ
C言語プログラミング学習ぼく、なぜか意図したとおりに動かない
2021年01月25日


三回ループして入力
それを表示するプログラム

なぜか入力2回までしか実行されない!!!!!

#include

typedef struct {
int number;
int clas;
char name[64];
} People;

void Input(People *data);
void Show(People data);

int main(void)
{
int i;
People data[3];

for (i = 0;i < 3;i++)
{
printf("%d番目のデータ\n",i + 1);
Input(&data[i]);
}
for (i = 0;i < 3;i++)
{
printf("%d番目のデータ\n",i + 1);
Show(data[i]);
}
}

void Input(People *data) {
printf("名前!\n");
scanf("%s",data->name);
printf("番号!\n");
scanf("%d",data->number);
}

void Show(People data) {
printf("名前-->%s\n",data.name);
printf("番号-->%d\n",data.number);
}



判定の場所変える



cなんて専門学校で習ったきりだが

for (i = 0;i < 3;i++)
ここかな?



>>
何がおかしい?
0.1.2と3回のはずだけど



for二個いる?



>>
うん、入力全部終わった後に表示させるだからね



Cはわからないわ



とりあえず scanf には &data->number で渡そう



>>
これ。



>>
いやいや、
変わらんから
そんなぶんぽうありまちえーーん



&data->で行けたわ
なんで???



知ってるけど、教える気全くなくなったわ。
解散。



>>
それな



なんで???



コンパイルエラーも見れないのか
ガイジやろ



>>

> コンパイルエラーも見れないのか
> ガイジやろ

コンパイルエラー出てないけど
論理エラーですが



どんなクソエディタ使ってんだこいつ



そんな文法ないんだろ?
じゃあ知らんよ



アロー演算子も知らずにイキってるってマジ?



>>
らしいねwwwwwwwwwwww



data->name
data[0].name
*data.name

どれもこれも意味は同じなのは理解できる
&data->name
ってなんだ?
dataのアドレスに直接書き込んでますってこと??理解不能
data->nameも通常変数モードで(すなわち直接値を書き換えている)ってことだろ



>>
scanfは引数にポインタを取る関数なんだぞ
printfの逆だからと勘違いして変数自体を渡してバグるのはC言語初心者あるあるだぞ



>>
&(data->name) だよ



関係ないけど、Show関数の引数がデータ渡しだから無駄にコピーするオーバーヘッドがあるのが気に食わんな
const のポインタ渡しで参照渡しにしとけ



前にmaxmin聞いたやつだろ
宿題は一人でやれよ



C言



>>
やめたれwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww



あー前もスレ立ててたやつか
プログラミング言語より口の聞き方勉強しろ



俺は現役バリバリの中堅SEだわ
プログラミングの勉強してるんだよ



>>
え
ええー



中堅!?しかもSE!???wwwwww
勉強の仕方改めないとやばいだろコイツ…



よく見たらアロー演算子が問題じゃないやんけ
ただのscanfやんけ 
タイトルとURLをコピーしました