たとえば、値のセットのモードを決定するプログラムに取り組んでいます (3 4 2 3 3) は、「3」を出力する必要があります。キャッチは、プログラムが実行する数学関数のオプションとその引数をメイン関数のパラメーターとして受け取る必要があるため、ユーザー入力がないことです。すべてをコマンド ラインに挿入し、ポインタを使用してチェックする必要があります。私のプログラムは、ユーザーが(モード)に入ったが、その後値を入力しないなどの場合を除いて機能します。これにより、「エラー」というメッセージが出力され、プログラムが終了します。ただし、代わりに印刷しません
Johns-MacBook-Pro-2:AdvanceCalc jvdamore$ ./a.out モード セグメンテーション違反: 11
いつ印刷するか
Johns-MacBook-Pro-2:AdvanceCalc jvdamore$ ./a.out モード エラー
以下は私のコードです。私の質問は、strcmp(p[2], "") == 0 を使用した if ステートメントは、目的のエラー メッセージを生成するために機能しますか? または私は何か間違ったことをしていますか?
int main(int n, char **p)
{
int i, x, A[100];
if (strcmp(p[1], "mode")==0){
if (strcmp(p[2], "") == 0){
printf("ERROR");
return -1;
}
for(i=2;i<n;i++){
if (sscanf(p[i], "%d", &x) != 1) {
printf("ERROR");
return -1;
}
if (x<1 || x>30){
printf("ERROR");
return-2;
}
A[i-2]= x;
}
find_mode(A, n-2);
}