締切済み

c言語

  • 困ってます
  • 質問No.9536086
  • 閲覧数149
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 0% (0/1)

int kexnsakusuu(int n[30], int c[30],int g){
int y = 0;
int h = 0;
int flag = 0;
int flag_1;
int i=1;
int u;
while(c[i]>0){
h++;
u = 0;
flag_1=0;
while(n[u]>0 && flag_1==0){
if(abs(n[u] - c[i]) <= g){y++;flag_1++;};
u++;
}
i++;
}
if(y == h)flag = 1;
return flag;
}
n[30]に12 18 3 3 0 0 0 0 以下0
c[30]に3000 12 3 0 0 0 0 以下0
c[1] c[2]とn[]の絶対値が2以下(gは2)で調べたいのですが、上記だとf‘lagは1を返したいです。
9000件のn[]を調べると誤動作があるみたいです。

回答 (全1件)

  • 回答No.1

ベストアンサー率 50% (1228/2420)

コンピューター カテゴリマスター
ざっとしか、見てないんですが。
>9000件のn[]を調べると誤動作があるみたいです。
n[]が30個しか配列がないので、最大でも30でBreak
かけたほうがいいですよね。
9000など可変長に受け取りたいなら、*nで受け取ったほうが
まだましです。
ただ、ざっと見た感じなので、まだ何がしたいのかまでは
読み取れてませんが。
とりあえず、
iとuが30(を含む)以上になったら、停止したほうがいいですよ。
i++;の後に
if (i>30) break;
など
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


OKWAVE若者応援スペシャル企画

ピックアップ

ページ先頭へ