image

1: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 13:57:35.554 ID:IN8gM/2G0.net
三回ループして入力
それを表示するプログラム

なぜか入力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);
}


4: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 13:59:20.292 ID:lqBY7EP60.net
判定の場所変える


5: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 13:59:48.692 ID:yxBoeDO90.net
cなんて専門学校で習ったきりだが

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


7: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:00:18.271 ID:IN8gM/2G0NEWYEAR.net
>>5
何がおかしい?
0.1.2と3回のはずだけど


9: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:02:19.352 ID:ZVoiiF5ha.net
for二個いる?


12: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:04:07.334 ID:IN8gM/2G0.net
>>9
うん、入力全部終わった後に表示させるだからね


13: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:04:24.436 ID:/A73CeAi0.net
Cはわからないわ


10: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:03:02.424 ID:CZpKOiqI0.net
とりあえず scanf には &data->number で渡そう


17: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:07:15.724 ID:a+PqXYEJ0.net
>>10
これ。


24: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:09:01.222 ID:IN8gM/2G0.net
>>10
いやいや、
変わらんから
そんなぶんぽうありまちえーーん


26: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:11:45.785 ID:IN8gM/2G0.net
&data->で行けたわ
なんで???


28: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:13:14.084 ID:a+PqXYEJ0.net
知ってるけど、教える気全くなくなったわ。
解散。


32: エコバッグ警察 2021/01/03(日) 14:14:55.980 ID:hY4Qs9Bl0.net
>>28
それな


29: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:13:37.922 ID:IN8gM/2G0.net
なんで???


30: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:13:42.498 ID:rqK7J/zbM.net
コンパイルエラーも見れないのか
ガイジやろ


33: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:16:14.359 ID:IN8gM/2G0.net
>>30

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

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


35: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:19:07.524 ID:rqK7J/zbM.net
どんなクソエディタ使ってんだこいつ


38: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:19:41.661 ID:2LtOCPEh0.net
そんな文法ないんだろ?
じゃあ知らんよ


40: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:21:23.925 ID:DdYMVPaz0.net
アロー演算子も知らずにイキってるってマジ?


44: エコバッグ警察 2021/01/03(日) 14:23:08.416 ID:hY4Qs9Bl0.net
>>40
らしいねwwwwwwwwwwww


41: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:21:29.903 ID:IN8gM/2G0.net
data->name
data[0].name
*data.name

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


60: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 15:45:12.890 ID:6PKR5+FqM.net
>>41
scanfは引数にポインタを取る関数なんだぞ
printfの逆だからと勘違いして変数自体を渡してバグるのはC言語初心者あるあるだぞ


61: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 15:51:20.834 ID:mApCttO40.net
>>41
&(data->name) だよ


45: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:25:46.967 ID:pzq5NVI70.net
関係ないけど、Show関数の引数がデータ渡しだから無駄にコピーするオーバーヘッドがあるのが気に食わんな
const のポインタ渡しで参照渡しにしとけ


47: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:27:50.427 ID:gEjB5PEJM.net
前にmaxmin聞いたやつだろ
宿題は一人でやれよ


48: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:28:56.004 ID:fx7n853p0.net
C言語やってて構造体使うのにアロー演算子知らない>>1かいるのはここですか?


51: エコバッグ警察 2021/01/03(日) 14:31:27.483 ID:hY4Qs9Bl0.net
>>48
やめたれwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww


49: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:30:18.012 ID:/FCX9dvnd.net
あー前もスレ立ててたやつか
プログラミング言語より口の聞き方勉強しろ


50: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:30:30.421 ID:IN8gM/2G0.net
俺は現役バリバリの中堅SEだわ
プログラミングの勉強してるんだよ


55: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:34:14.097 ID:yxBoeDO90.net
>>50

ええー


54: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:33:22.562 ID:eul9Y+bf0.net
中堅!?しかもSE!???wwwwww
勉強の仕方改めないとやばいだろコイツ…


56: 以下、?ちゃんねるからVIPがお送りします 2021/01/03(日) 14:36:59.214 ID:fx7n853p0.net
よく見たらアロー演算子が問題じゃないやんけ
ただのscanfやんけ


元スレ: http://viper.2ch.sc/test/read.cgi/news4vip/1609649855/