重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

配列Aに格納されている数字を検索するプログラムより、
Aのプログラムでは配列Aに格納されている数字を検索(scanf("%d" , j)で入力)した
にもかかわらず、「該当するデータがありませんでした」と表示されてしまいます。

Bのプログラムでは、配列Bに格納されている数字を検索(scanf("%d" , j)で入力)すると
「該当するデータがありました」と表示されます。

Aのプログラムで、------でかこってある部分に問題があると思われ、
いろいろと試してみましたが、未だにその理由をつかむことができません。
その理由を知りたく、書き込みを致しました。
ご教授の程宜しくお願い致します。

A.
main(){
int i , j;
int k = 0;
int A[5] = {4 , 1 , 3 , 4 , 5};

printf("検索する数値を入力してください > ");
scanf("%d" , j);
---------------------------------------------------------------
for(i=0 ; i<5 ; i++){
if(A[i] == j){
printf("該当するデータはあります");
k++;
}
}
---------------------------------------------------------------
if(k <= 0){
printf("該当するデータがありませんでした\n");
}
return;
}

B
#include<stdio.h>

main(){
int i , j , k;
int A[5] = {4 , 1 , 3 , 4 , 5};

printf("検索する数値を入力してください > ");
scanf("%d" , j);
for(i=0 ; i<5 ; i++){
if(A[i] == j){
k++;
}
}
if(k>0){
printf("該当するデータはありました");
}else{
printf("該当するデータはありませんでした");
}
return;
}

A 回答 (2件)

scanf("%d",j)ではなく


scanf("%d",&j)です。

プログラムBに関してはkが不定
    • good
    • 0
この回答へのお礼

完全なミスでした。
ご指摘ありがとうございました!!

お礼日時:2006/10/04 10:42

コードにサラッと目を通しただけで恐縮ですが、この通りのコードで書いていらっしゃるのであれば、A,B共にミスがあります。



A,B共にロジックが少し異なりますが、原因はロジックの違いでは無く、文法上の誤りです。

まず、scanfの使い方と、Bのプログラムにおいて変数Kが初期化されないままインクリメントされている事に着眼してみてはいかがでしょうか。
    • good
    • 0
この回答へのお礼

原因を特定することができました。
ケアレスミスが多すぎですね。
以降、気を着けます。。。

お礼日時:2006/10/04 10:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!