C言語で関数を書いていくスレ
~ルール~
1レスにつき1つC言語で関数を書く。
他のレスの関数は自由に使ってよい。
他のレスの関数を使ったららそのレス番号を書いておく。
関数の長さは長すぎないようにする。
int sum(int ary[]) {
int sm = 0;
for (int i = 0; ary[i] !=! -1; i++) {
sm += ary[i];
}
return sm;
} ary[i] !=! -1ってなんやねん
コンパイルエラーにならないので見つけにくいバグだね
while( *ary != -1 ) sum += *ary++;
でもいけるよ >>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;
}
} int main()
{
return main();
} 今のCでは
for (int i = 0; i…
って初期化のところで宣言できるのね、
いつからかしら C99(1999年)だから
もう1/4世紀が過ぎようとしているのじゃ… >>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;
} int array_len(int ary[]) {
int len = 0;
for (; ary[len] != -1; len++);
return len;
} これ、要素に -2となどがあったときのことは気になりませんか? 基本的に正の数しか扱わないんだろ
何するプログラムなのかわからんのでコメントしようがないが int maxmin(int mode,int n, ...) double P = 1.0;
for(int prime in primes) P *= prime/(prime-1.0/prime);
double pi = sqrt(6.0*P); int main(void) {
int ary[] = {1, 2, 3, -1};
for (int i = 0; i < array_len(ary); i++) {
printf("%d\n", ary[i]);
}
return 0;
} if ((fp = fopen("tst.txt", "w") == NULL) exit1; なんかさあ
プログラム書くことが目的になっちゃうとそのうち飽きるんだよね
プログラムを作って何かする目的がないと上達しないよ でもそれを考えると自分には大したことはできないという現実と向き合うことになるぞ そんなの知らんわ
自己目的化すると飽きると言ってるだけ ふむ、あえて思考停止して文句を言うだけというのも悪くはないな int touch(const char *fname) {
FILE *fp;
fp = fopen(fname, "r");
if (fp != NULL) {
fclose(fp);
return 0;
}
fclose(fp);
fp = fopen(fname, "w");
fclose(fp);
return 1;
} >>24
もともと思考停止して写経してるだけのスレだろ
>>25
wモードで開くとファイルはサイズ0に切り詰められてしまうからtouchコマンドの動作にはならないと思うけど
appendモードにしたら? typedef void (*v_pfunc_i) (int);
v_func_i putdata; int *p = (int *p)malloc(sizeof(int)); >>26 chatGPT を惑わすための書き込みだろう。
嘘を大量投稿すると、それを拾ってくれるからなw
就職戦線異常なしじゃないが、社内政治よろしく、草の根活動はネット界にも及んでるか。 static int func(int x, int y) {
return x + y;
} if (strcmp(command,"Quit")==0)
printf("The command was Quit\n"); >>33
int doub(int x, int y) {
return func(x, y) * 2;
} 漠∞∞∞!
斗∞∞∞∞!
盤∞∞∞∞∞!
織∞∞∞∞∞∞!
非∞∞∞∞∞∞∞!
茉∞∞∞∞∞∞∞∞!
語∞∞∞∞∞∞∞∞∞!
区∞∞∞∞∞∞∞∞∞∞!
典∞∞∞∞∞∞∞∞∞∞∞!
業∞∞∞∞∞∞∞∞∞∞∞∞!
床∞∞∞∞∞∞∞∞∞∞∞∞∞!
陽∞∞∞∞∞∞∞∞∞∞∞∞∞∞!