
No.2ベストアンサー
- 回答日時:
えーと、どこがわからないんでしょうか?
まさか全部回答を書けということではないでしょう?
>1.配列に次のデータが格納されており、
>2,-8,5,-4,6,5,7,-3,-9,-1
>奇数、偶数、負の数がそれぞれいくつあるかを数え、表示するプログラムを作成してください。
まず配列を定義して問題文のデータを格納する。
奇数の個数をゼロと定義する
偶数の個数をゼロと定義する
負数の個数をゼロと定義する
データの個数をカウントする
C言語なら for 分とかを使ってデータを一つづつ取り出す
奇数かどうか判定し奇数なら 奇数のカウントを+1する
偶数かどうか判定し偶数なら 偶数のカウントを+1する
負数かどうか判定し負数なら 負数のカウントを+1する
データが終了するまでループする
それぞれのカウント値を表示する
>2.任意の整数Xを入力し、Xの階乗の結果を表示するプログラムを作成しなさい。ただし、Xの階乗の計算は別関数で行い、入力と結果の表示はmain関数で行うようにすること。
メイン関数
整数Xの入力部分作成
関数を呼び出し(パラメータX)結果を取得する
結果を表示する
関数(引数X)
結果を1と定義する
for 文を使いXをループ変数としてループする
結果とループ変数を掛け算して保存する
ループ変数が1になるまで繰り返す
結果を戻り値として返却する
No.7
- 回答日時:
>どうすればいいのか
プログラムを作ってあげても、本人の解く力、作る能力はあまりつかない。
逆効果になる恐れあり。
奇数偶数の求め方はわかるとして、
アルゴリズムがわからないのか、
変数や配列をどう定義したら処理しやすいのかがわからないのか、
階乗、がわからないのか。
この課題の、1つ前のレベルをクリアできてない?。
この課題はできたとしても、次の課題でまた悩み、質問するのではないだろうか。
悩みは残りそうだし、質問者様はそれを明確にすべきでしょう。
No.6
- 回答日時:
2.だけ
再帰処理のサンプルとして。 # 普通はループ使う。
C++ です。
#include <iostream>
// 自然数 n の階乗を返す。
// n の階乗が INT_MAX を越える場合の動作は未定義。
int factorial(int n)
{
return (n > 1) ? n * factorial(n - 1) : 1;
}
int main()
{
int n;
std::cin >> n;
std::cout << factorial(n) << std::endl;
}
No.5
- 回答日時:
なんでわざわざ accumluate なんて使ったんだろ>#3. 常識的に考えたら
count_if(a, a+sizeof a/sizeof a[0], [](int val) { return val % 2 == 0; })
のように count_if を使う場面じゃないか.
No.4
- 回答日時:
作ってみました。
1.
----------
-module(count_num).
-export([count_num1/0, count_num2/0]).
%% 偶数・奇数・負値のカウント(listsモジュール使用版)
count_num1() ->
Number_List = [2,-8,5,-4,6,5,7,-3,-9,-1],
{Even_List, Odd_List} = lists:partition(fun (X) -> X rem 2 == 0 end, Number_List),
Negative_List = lists:filter(fun (X) -> X < 0 end, Number_List),
io:format("# of even : ~b~n", [length(Even_List)]),
io:format("# of odd : ~b~n", [length(Odd_List)]),
io:format("# of negative : ~b~n", [length(Negative_List)]).
%% 偶数・奇数・負値のカウント(listsモジュール未使用版)
count_num2() ->
Number_List = [2,-8,5,-4,6,5,7,-3,-9,-1],
io:format("# of even : ~b~n", [count(Number_List, fun (X) -> X rem 2 == 0 end)]),
io:format("# of odd : ~b~n", [count(Number_List, fun (X) -> X rem 2 /= 0 end)]),
io:format("# of negative : ~b~n", [count(Number_List, fun (X) -> X < 0 end)]).
%% 個数計算
count(L, F) ->
count(L, F, 0).
%% 個数計算実装
count([], _F, Count) ->
Count;
count([H | T], F, Count) ->
case F(H) of
true ->
count(T, F, Count + 1);
false ->
count(T, F, Count)
end.
----------
2.
----------
-module(fact).
-export([main/0]).
%% main関数
main() ->
Value = input_non_negative_integer(),
io:format("~b! = ~b.~n", [Value, fact(Value)]).
%% 非負整数値入力
input_non_negative_integer() ->
case io:fread('input non-negative integer>', "~d") of
{ok, [Value]} when Value > 0 ->
Value;
_Others ->
input_non_negative_integer()
end.
%% 階乗計算
fact(Value) ->
fact(Value, 1).
%% 階乗計算実装
%% とりあえずモジュール内で呼ばれるのみなので、負値ガード等は行っていない
fact(0, Result) ->
Result;
fact(Value, Result) ->
fact(Value - 1, Result * Value).
----------
インデントは全角スペースで行っているので、コピペ後タブに置換してください。
以下の環境で動作確認済です。
OS : Windows Vista Home Premium SP2
Erlang OTP: R14B01
……言語指定が無かったのですが、その他(プログラミング)カテゴリへの質問ですのでErlang(参考URL参照)だと推察しました。想定の言語と違っていたならお詫びいたします。
参考URL:http://www.erlang.org/
No.3
- 回答日時:
1 の奇数だけ:
#include <iostream>
#include <numeric>
int main()
{
const int a[] = { 2, -8, 5, -4, 6, 5, 7, -3, -9, 1 };
std::cout << std::accumulate(a, a+sizeof a/sizeof a[0], 0, [](int acc, int val) { return acc + (val % 2 ? 1 : 0); }) << std::endl;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# 整数1〜99を入力させ、それを英語で表示するプログラムを作成したいんですが、そのプログラミングを教え 4 2023/04/28 14:12
- Ruby VBA 2 2023/01/14 14:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構文エラー";"が型の前にあり...
-
#if 1 #elseの意味について
-
for文の中にswitch文はいれられ...
-
配列を関数に渡す方法
-
getcの改行判定
-
C言語の二分法のプログラムにつ...
-
C言語 マスターマインドゲーム...
-
全角文字の判定
-
計算結果がlong型以上になる場...
-
while文を使った問題なのですが...
-
C言語初心者です。次の問題で質...
-
C言語 数字以外を入力させない...
-
初心者です。
-
C++での乱射ショットについて教...
-
if文
-
raspberrypiでロータリエンコーダ
-
C言語で電卓を作成する。
-
双方向リスト
-
入力した数値を0~3乗するプロ...
-
scanfが実行されません
おすすめ情報