すみません。課題についてです

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
トント

すみません。課題についてです

#1

投稿記事 by トント » 18年前

大学の宿題で「キーボードから10個の文字列を入力させ、次に、検索する文字列を入力し、その文字列が先に入力した文字列にあるかどうか検索するプログラムを作成せよ。」という問題が出されたのですが、何度やっても同じ答えしか出てくれません(探索に失敗しました)。どこか不適切な点を教えてください。


正解の解答例                私の解答例
文字列1:Hello             文字列[0]:hello
文字列2:Apple             文字列[1]:apple
文字列3:dog              文字列[2]:dog
文字列4:cat              文字列[3]:cat
文字列5:house             文字列[4]:house
文字列6:drive             文字列[5]:drive
文字列7:year              文字列[6]:year
文字列8:child             文字列[7]:child
文字列9:animals            文字列[8]:animal
文字列10:name             文字列[9]:name

検索する文字列を入力してください:house 検索する文字列を入力してください:house

houseは5番目にあります。 探索に失敗しました。

プログラムは
#include <stdio.h>

#define NUMBER 10
#define FAILED -1
int search(int vc[/url],int key,int no)
{
int i=0;

vc[no]=key;

while(1){
if(vc=key)
break;
i++;
}
return (i=no?FAILED:i);
}

int main(void)
{
int i,ky,idx;
int vx[NUMBER+1];

for(i=0;i<NUMBER;i++){
printf("文字列[%d]:",i);
scanf("%s",&vx);
}
printf("検索する文字列を入力してください:");
scanf("%s",&ky);

idx=search(vx,ky,NUMBER);

if(idx=FAILED)
puts("\a探索に失敗しました。");
else
printf("%dは%d番目にあります。\n",ky,idx+1);
return (0);
}

box

Re:すみません。課題についてです

#2

投稿記事 by box » 18年前

とりあえず、if文とreturn文で等号を書いている箇所で、
等号の数が1個でいいかどうか調べてみてください。

それから、文字列を格納する変数がint型であることが
正しいかどうか、こちらもご確認ください。

閉鎖

“C言語何でも質問掲示板” へ戻る