C言語で関数を書いていくスレ

2023/03/11(土) 10:56:14.29ID:efZkF8jj
~ルール~
1レスにつき1つC言語で関数を書く。
他のレスの関数は自由に使ってよい。
他のレスの関数を使ったららそのレス番号を書いておく。
関数の長さは長すぎないようにする。

int sum(int ary[]) {
int sm = 0;
for (int i = 0; ary[i] !=! -1; i++) {
sm += ary[i];
}
return sm;
}
2023/03/11(土) 10:59:31.33ID:bl2jeOij
ソリオ ソリオ チンポ反り男
2023/03/11(土) 11:09:37.52ID:AyWAtMH4
ary[i] !=! -1ってなんやねん
コンパイルエラーにならないので見つけにくいバグだね

while( *ary != -1 ) sum += *ary++;
でもいけるよ
2023/03/11(土) 18:35:09.30ID:efZkF8jj
>>1

int avg(int ary[]) {
int len = 0;
for (int i = 0; ary[i] != -1; i++) {
len++;
}
if (len) {
return sum(ary) / len;
} else {
return 0;
}
}
2023/03/12(日) 12:15:04.56ID:8DcR0+ge
int main()
{
return main();
}
6デフォルトの名無しさん
垢版 |
2023/03/12(日) 18:21:44.81ID:2cnWn6Se
今のCでは
for (int i = 0; i…
って初期化のところで宣言できるのね、
いつからかしら
2023/03/12(日) 20:21:51.88ID:Q2tnjoKg
C99(1999年)だから
もう1/4世紀が過ぎようとしているのじゃ…
8デフォルトの名無しさん
垢版 |
2023/03/12(日) 21:22:29.74ID:2cnWn6Se
左様か、かたじけない
2023/03/16(木) 04:30:51.98ID:EyxNZW19
>>1
int setup_sum(int ary[]) {
 int zero_count = 0;
 int i = 0;
 for (; ary[i] != -1; i++) {
  if (ary[i]) continue;
  ary[i] = -1;
  zero_count++;
 }
 ary[i] = 0;
 return zero_count;
}

void teardown_sum(int ary[]) {
 int i = 0;
 for (; ary[i]; i++) {
  if (ary[i] == -1) ary[i] = 0;
 }
 ary[i] = -1;
}

int invoke_sum(int ary[]) {
 int zero_count = setup_sum(ary);
 int result = sum(ary) + zero_count;
 teardown_sum(ary);
 return result;
}
10デフォルトの名無しさん
垢版 |
2023/03/16(木) 11:03:08.87ID:N2/NSeFa
rg3d
2023/03/16(木) 21:40:47.78ID:1l5yFwg2
int array_len(int ary[]) {
int len = 0;
for (; ary[len] != -1; len++);
return len;
}
12デフォルトの名無しさん
垢版 |
2023/03/17(金) 01:03:31.06ID:0RjA/jOc
これ、要素に -2となどがあったときのことは気になりませんか?
2023/03/17(金) 01:36:58.11ID:jQb7jLd1
なお、-2以下の場合は未定義とする(キリッ
2023/03/17(金) 08:12:34.83ID:FEpWoYhB
基本的に正の数しか扱わないんだろ
何するプログラムなのかわからんのでコメントしようがないが
2023/03/17(金) 20:36:52.69ID:gUpaepT/
int maxmin(int mode,int n, ...)
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況