|
Cの勉強を始めて2週間のものなのですが、作ってみたプログラムがうまく動きません。コンパイラのエラーはなく、main関数内一番最初のfor文で使っているのsacanf("%d" ,&kinmu[i].no)が二回目以降のfor文の処理時点で作動しません。解決方法がわかりません。どなたか分かる方以内でしょうか?宜しくお願いします。作っているのは勤務表を作成するプログラムです。ソースは下記の通りです。
#include <stdio.h>
struct syain{
int no;
char name[40];
int kaisuu1;
int kaisuu2;
int kaisuu3;
int kaisuu4;
int kaisuu5;
};
main()
{
struct syain kinmu[3];
int i;
int j;
int h=0,n=0,o=0,y=0,k=0;
char work[3][10];
char ans;
int t;
for(i=0; i<3; i++){
printf("社員番号は?\n");
scanf("%d",&kinmu[i]);
printf("名前は?");
scanf("%s",kinmu[i].name);
printf("勤務(早番:1 日勤:2 遅番:3 夜勤:4 休日:5)は?\n");
for(j=0; j<10; j++){
printf("%d日は?\n" ,j+1);
scanf("%c\n" ,&work[i][j]);
if(work[i][j] == '1'){
kinmu[i].kaisuu1=h++;
}
if(work[i][j] == '2'){
kinmu[i].kaisuu2=n++;
}
if(work[i][j] == '3'){
kinmu[i].kaisuu3=o++;
}
if(work[i][j] == '4'){
kinmu[i].kaisuu4=y++;
}
if(work[i][j] == '5'){
kinmu[i].kaisuu5=k++;
}
}
}
/*printf("これでいいですか(YES:y NO:n)");
scanf("%c" ,ans);
if(ans == 'y'){
break;
}*/
printf("+------------------------------------------------------------------------------------------------------+\n");
printf("| NO | 名前 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 早番 | 日勤 | 遅番 | 夜勤 | 休日 |\n");
for (i=0; i<3; i++){
printf("| %d | %s |" ,kinmu[i].no,kinmu[i].name);
for(j=0; j<10; j++){
printf(" %c |" ,work[i][j]);
}
printf(" %d回 | %d回 | %d回 | %d回 | %d回 |\n" ,kinmu[i].kaisuu1,kinmu[i].kaisuu2,kinmu[i].kaisuu3,kinmu[i].kaisuu4,kinmu[i].kaisuu5);
printf("\n");
}
printf("+------------------------------------------------------------------------------------------------------+\n");
return 0;
}
|