C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: 戻り値


(過去ログ 136 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■80023 / inTopicNo.1)  戻り値
  
□投稿者/ c (1回)-(2016/06/04(Sat) 22:44:36)

分類:[C/C++] 

複数のint型変数の引数でより大きな値を戻り値とする関数を使用したいです。
関数の()の所で行き詰っています。
ちなみにプログラム言語はCです。
引用返信 編集キー/
■80026 / inTopicNo.2)  Re[1]: 戻り値
□投稿者/ Azulean (647回)-(2016/06/04(Sat) 23:47:08)
No80023 (c さん) に返信
> 複数のint型変数の引数でより大きな値を戻り値とする関数を使用したいです。
> 関数の()の所で行き詰っています。
> ちなみにプログラム言語はCです。

地道に if 文を書くとか、三項演算子((a > b) ? a : b など)を書くとか、そういった話にはならないのでしょうか?
引用返信 編集キー/
■80038 / inTopicNo.3)  Re[1]: 戻り値
□投稿者/ とっちゃん (370回)-(2016/06/06(Mon) 10:19:48)
No80023 (c さん) に返信
> 複数のint型変数の引数でより大きな値を戻り値とする関数を使用したいです。
> 関数の()の所で行き詰っています。
> ちなみにプログラム言語はCです。

わからないのは関数の作り方ですか?
それとも使い方ですか?
使用したいという言葉だと使い方がわからないということになりますが
文章を読む限りでは作り方を質問しているようにも見えます。


使い方なのであれば、関数の宣言を提示してもらえばたぶん多くの方が回答してくれると思います。

作り方がわからないのであれば、どこで躓いているかをなるべく具体的に書くと多くの方が回答してくれると思います。

質問する際、
http://www.hyuki.com/writing/techask.html

を参考にしてみるとよいかもしれません。

引用返信 編集キー/
■80039 / inTopicNo.4)  Re[2]: 戻り値
□投稿者/ 774RR (406回)-(2016/06/06(Mon) 11:16:54)
類似質問がほぼ同時期に投稿されている様子。
http://ja.stackoverflow.com/questions/25446
http://dixq.net/forum/viewtopic.php?f=3&t=18041

ここの元記事は「質問文」になっていないので blog 記事の投稿か何かなのでしょう。
近況報告?

引用返信 編集キー/
■80040 / inTopicNo.5)  Re[3]: 戻り値
□投稿者/ とっちゃん (371回)-(2016/06/06(Mon) 12:01:42)
No80039 (774RR さん) に返信

> http://dixq.net/forum/viewtopic.php?f=3&t=18041
>
こっちはオフトピに元ネタ(求人ですねw)が貼ってありますね。
○コピーですが、なんというか、課題の行間を埋めてわけのわからん回答を書きたくなる衝動に。。。w

引用返信 編集キー/
■80043 / inTopicNo.6)  Re[4]: 戻り値
□投稿者/ 774RR (407回)-(2016/06/06(Mon) 13:34:24)
> 課題の行間を埋めてわけのわからん回答を書きたくなる衝動に
かられますねぇ。
出題者の想定の斜め上を行く答を考えたくなります。
まあ求人さんの元ネタについては 80026 にて真っ当な答が出てますのでそれ以上突っ込まないことにします。

ここの元発言には2個ではなく複数のとあるので dixq のところとは別ネタなのかもしれません。
stackoverflow とここは同じネタのように読み取れます。

複数=任意個数ということは可変長引数が必要なのかもしれません。
「より大きな」という文言は「最大値1個」ではなくて「特定値より大きいもの全て」かもしれません。
とまあこんな感じで元発言はどうにでも解釈できるので
stackoverflow のほうは真剣な悪ノリ回答が付いた上で「改善待ち」になってます。

とりあえずオイラもこっち(わんくま)で真剣な悪ノリ回答を試みてみましょう。
あえてコメント無しあえて C++ っつことで。

#include <cstdarg>
#include <stdexcept>
int maxofn(int argcount, ...) {
    if (argcount<=0) throw std::invalid_argument("argcount must be >0");
    va_list va;
    va_start(va, argcount);
    int max_value_candidate=va_arg(va, int);
    for (int i=1; i<argcount; ++i) {
        int v=va_arg(va, int);
        if (v>max_value_candidate) max_value_candidate=v;
    }
    va_end(va);
    return max_value_candidate;
}

// throw invalid_argument にするか assert にするかが悩みどころ。
// 皆様ならどうしますか? ってのは別スレッドにて意見募って見ましょうか・・・

引用返信 編集キー/
■80052 / inTopicNo.7)  Re[5]: 戻り値
□投稿者/ 作業着プログラマ (5回)-(2016/06/07(Tue) 17:53:00)
【 要求仕様 】
・C言語であること
・複数のint型引数がある関数であること
・引数よりも大きな戻り値を返せること


絶対こういうことじゃないと思うけど・・・・
私の理解力を駆使すると以下のコードとなりました。
ユーザー、営業、開発それぞれの意図する仕様が
うまく伝わってないプログラマあるあるを思い出しました。

#include <stdio.h>

void hoge(int hikisuu1, int hikisuu2, int *modori1, int *modori2){
    *modori1 = hikisuu1 + 1;
    *modori2 = hikisuu2 + 1;
}

int main(void){
    int modori1 = 0;
    int modori2 = 0;
    
    hoge(1,2, &modori1, &modori2);
    
    printf("%d\r\n", modori1);
    printf("%d\r\n", modori2);

    return 0;
}

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -