main関数、助けて
main関数、助けて
#include<stdio.h>
int main (void)
int a[3] int b[3];
int i,j;
i=0.0;
j=0.0;
for(i=0;i<3;i++){
for(j=0;j<3;j++)
scanf("%d,&a[3]")
scanf("%d,&b[3]")
}
void calc_naiseki_gaiseki(int a, int b, naiski gaiseki)
naiseki=a[1]b[1]*+a[2]b[2]+a[3]b[3]
gaiseki=
c[0]=a[1]*b[2]-a[2]*b[1];
c[1]=a[2]*b[0]-a[0]*b[2];
c[2]=a[0]*b[1]-a[1]*b[0];
retura
#include<stdio.h>
int main (void)
int a[5]
int i;
printf("数字を5つ入力してください\n");
for(i=0;i<5;i++){
scanf("%d",&a[]);
}
printf("最大値%d\n",max);
printf("最小値%d\n",min);
return0
void calc_maxindex(max,min)
if(max<=a[]){
max=a[];
}
if(min>=a[]){
min=a[];
}
だれか教えてください
すべてmain関数以外で計算しないといけません
したは、最大と最少を求めるやつです
お願いします
int main (void)
int a[3] int b[3];
int i,j;
i=0.0;
j=0.0;
for(i=0;i<3;i++){
for(j=0;j<3;j++)
scanf("%d,&a[3]")
scanf("%d,&b[3]")
}
void calc_naiseki_gaiseki(int a, int b, naiski gaiseki)
naiseki=a[1]b[1]*+a[2]b[2]+a[3]b[3]
gaiseki=
c[0]=a[1]*b[2]-a[2]*b[1];
c[1]=a[2]*b[0]-a[0]*b[2];
c[2]=a[0]*b[1]-a[1]*b[0];
retura
#include<stdio.h>
int main (void)
int a[5]
int i;
printf("数字を5つ入力してください\n");
for(i=0;i<5;i++){
scanf("%d",&a[]);
}
printf("最大値%d\n",max);
printf("最小値%d\n",min);
return0
void calc_maxindex(max,min)
if(max<=a[]){
max=a[];
}
if(min>=a[]){
min=a[];
}
だれか教えてください
すべてmain関数以外で計算しないといけません
したは、最大と最少を求めるやつです
お願いします
Re: main関数、助けて
1.フォーラムルールをお読みください
2.コードタグを使用してください
3.何をするプログラムかを書いてください
4.何がわからないのかを書いてください
2.コードタグを使用してください
3.何をするプログラムかを書いてください
4.何がわからないのかを書いてください
Re: main関数、助けて
結構難しい要求ですね。ことこ さんが書きました:すべてmain関数以外で計算しないといけません
こういうことでしょうか?
#include <iostream>
#include <array>
#include <algorithm>
int program =
[]()
{
std::array<int, 5> data;
std::cout << "数字を5つ入力してください" << std::endl;
for (int& e : data) std::cin >> e;
std::cout << "最大値" << *std::max_element(data.cbegin(), data.cend()) << std::endl;
std::cout << "最小値" << *std::min_element(data.cbegin(), data.cend()) << std::endl;
return 0;
}();
int main()
{
}
Re: main関数、助けて
プログラムは 2つあるんですね。
たいていのプログラムは、全体をクラスの中に入れると、
main は空にできそうです。
たいていのプログラムは、全体をクラスの中に入れると、
main は空にできそうです。
#include <iostream>
struct v {
double a[3], b[3], c[3], d;
v() {
std::cout << "a と b の要素を 3つずつ入力してください\n";
std::cin >> a[0] >> a[1] >> a[2] >> b[0] >> b[1] >> b[2];
d = calc(a, b, c);
std::cout << "内積 " << d << "\n外積 ("
<< c[0] << ", " << c[1] << ", " << c[2] << ")\n";
}
double calc(double *a, double *b, double *c) {
c[0] = a[1]*b[2] - a[2]*b[1];
c[1] = a[2]*b[0] - a[0]*b[2];
c[2] = a[0]*b[1] - a[1]*b[0];
return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
}
} v;
int main() { }
- Dixq (管理人)
- 管理人
- 記事: 1661
- 登録日時: 13年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: main関数、助けて
ことこさん
まず、質問する時に「どんなプログラムなのか」「どこが分からなくて困っているのか」を書いて下さい。
詳しくはフォーラムルールに書いてあります。
http://dixq.net/board/board.html
見たところ、大きく分けて2つのプログラムに見えますが、この内積・外積を求めるプログラムと、最大値最小値を求めるプログラムは一つにしないといけないのでしょうか?
そして、すべてmain関数以外で計算しないといけないというのはどういうことでしょうか。
おそらく文章そのままの意味は期待されていないはずだと思います。
必要な物を関数化して、それをmain関数は呼び出すだけにするのでしょうか?
まず、質問する時に「どんなプログラムなのか」「どこが分からなくて困っているのか」を書いて下さい。
詳しくはフォーラムルールに書いてあります。
http://dixq.net/board/board.html
見たところ、大きく分けて2つのプログラムに見えますが、この内積・外積を求めるプログラムと、最大値最小値を求めるプログラムは一つにしないといけないのでしょうか?
そして、すべてmain関数以外で計算しないといけないというのはどういうことでしょうか。
おそらく文章そのままの意味は期待されていないはずだと思います。
必要な物を関数化して、それをmain関数は呼び出すだけにするのでしょうか?
Re: main関数、助けて
そうです説明不足ですいません
プログラムは、2あります
main関数で数字を入力してもらい、メインで表示、それ以外の関数で計算するかんじです
ポインターを使わないといけないらいいのですがようくわかりません
プログラムは、2あります
main関数で数字を入力してもらい、メインで表示、それ以外の関数で計算するかんじです
ポインターを使わないといけないらいいのですがようくわかりません
Re: main関数、助けて
ポインタの使い方がわからないとのことなので、
その他のことについては理解できているということですか?
手順としてはmain関数で
1.ユーザーから入力される数字を格納する変数*2
2.計算結果を格納する変数*2
を定義。
scanfを使い数字を1.に格納。
適切な関数に引数として1.と2.のポインタを渡す。
関数にて計算を行い結果を2.に代入。
以上の処理を実装すればいいと思われます。
その他のことについては理解できているということですか?
手順としてはmain関数で
1.ユーザーから入力される数字を格納する変数*2
2.計算結果を格納する変数*2
を定義。
scanfを使い数字を1.に格納。
適切な関数に引数として1.と2.のポインタを渡す。
関数にて計算を行い結果を2.に代入。
以上の処理を実装すればいいと思われます。
- Dixq (管理人)
- 管理人
- 記事: 1661
- 登録日時: 13年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: main関数、助けて
ではまずポインタを使った簡単なプログラムから作ってみましょう。
少しずつ課題に近づけてやれば解けると思います。
下に問題1の解答例を書いておきますが、まずは見ないでやってみて下さい。
解釈はいろいろあると思います。
問題1.
二つのint型の数値を加算してその結果を得る関数をポインタを使って作りなさい。
また、その結果をmain関数内で表示しなさい。
問題2.
問題1を改良し、5個の配列要素を持ったdouble型配列を受け取り、受け取った要素をすべて加算して結果を得る関数を作りなさい。
(配列要素に入れる数値はscanfで格納すること)
問題3.
全てmain関数に書いてよく、入力も求めなくていいので、内積を計算するプログラムを作りなさい。
(以下参考リンク)
http://www.google.co.jp/search?q=%E5%86 ... e&ie=UTF-8
これが解ければ自力で課題が一つ解決できませんか?
少しずつ課題に近づけてやれば解けると思います。
下に問題1の解答例を書いておきますが、まずは見ないでやってみて下さい。
解釈はいろいろあると思います。
問題1.
二つのint型の数値を加算してその結果を得る関数をポインタを使って作りなさい。
また、その結果をmain関数内で表示しなさい。
#include <stdio.h>
void add(int a1, int a2, int *result){
*result = a1 + a2;
}
int main(){
int result=0;
add(1,2,&result);
printf("%d",result);
}
問題1を改良し、5個の配列要素を持ったdouble型配列を受け取り、受け取った要素をすべて加算して結果を得る関数を作りなさい。
(配列要素に入れる数値はscanfで格納すること)
問題3.
全てmain関数に書いてよく、入力も求めなくていいので、内積を計算するプログラムを作りなさい。
(以下参考リンク)
http://www.google.co.jp/search?q=%E5%86 ... e&ie=UTF-8
これが解ければ自力で課題が一つ解決できませんか?
Re: main関数、助けて
ポインタ関連は、わかったのですが5つの数から大きいものと小さいものを選ぶアルゴリズムがあわかりません
2つならx>yという形にすればいいと思うのですが5つの場合どうすればいいのでしょうか?
2つならx>yという形にすればいいと思うのですが5つの場合どうすればいいのでしょうか?
- Dixq (管理人)
- 管理人
- 記事: 1661
- 登録日時: 13年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: main関数、助けて
それは「ソート」で解決します。
こちらを参考に
http://www1.cts.ne.jp/~clab/Contents/Sortindex.html
まずは一番簡単なバブルソートで実装してみてはいかがでしょう。
ソートの方法はたくさんあるので、この際色んなアルゴリズムで実装してみて下さい。
こちらを参考に
http://www1.cts.ne.jp/~clab/Contents/Sortindex.html
まずは一番簡単なバブルソートで実装してみてはいかがでしょう。
ソートの方法はたくさんあるので、この際色んなアルゴリズムで実装してみて下さい。
Re: main関数、助けて
まずは、大きいものだけを選ぶアルゴリズムを考えてみましょう。ことこ さんが書きました:ポインタ関連はわかったのですが、5つの数から大きいものと小さいものを選ぶアルゴリズムがわかりません。
2つならx>yという形にすればいいと思うのですが、5つの場合どうすればいいのでしょうか?
max = a[0];
if (a[1] > max) max = a[1];
if (a[2] > max) max = a[2];
if (a[3] > max) max = a[3];
if (a[4] > max) max = a[4];
2つの forループを 1つにまとめてもよいでしょう。