ページ 1 / 1
よろしくお願いします
Posted: 2015年7月25日(土) 20:33
by sim
プログラムについて質問です。入力した分数を構造体に格納して返す関数。引数として分数を受けとり標準出力へ出力する関数。
この二つはどうしたらよいでしょうか?
#include<stdio.h>
struct fraction
{
int num; /*分子*/
int den; /*分母*/
};
int main(void)
{
struct fraction fraction1;
printf("分子を入力してください。\n");
scanf("%d",&fraction1.num);
printf("分母を入力してください。\n");
scanf("%d",&fraction1.den);
printf("入力された分数は%d/%dです。\n", fraction1.num, fraction1.den);
return 0;
}
Re: よろしくお願いします
Posted: 2015年7月25日(土) 20:37
by みけCAT
ソースコードを貼り付ける際は、BBCodeを有効にした上でcodeタグで囲んでいただけると、見やすくてありがたいです。
sim さんが書きました:この二つはどうしたらよいでしょうか?
課題なら作って使えばいいと思います。
具体的にどのへんがわからないのですか?
Re: よろしくお願いします
Posted: 2015年7月25日(土) 20:40
by sim
構造体において関数を呼び出す定義ってなんですか?
Re: よろしくお願いします
Posted: 2015年7月25日(土) 20:48
by Dixq (管理人)
試しに似た回答をしてみます。
これをいじくれば課題は完成すると思います。
コード:
#include <stdio.h>
struct Test {
int mem;
};
void input(struct Test *atest){
int tmp;
scanf("%d", &tmp);
atest->mem = tmp;
}
void myPrint(struct Test atest){
printf("%d", atest.mem);
}
int main(){
struct Test test;
input(&test);
myPrint(test);
return 0;
}
ポイントはポインタを使った時はアロー演算子->で、
ポインタを使わない時はドット演算い.でメンバを指定します。
Re: よろしくお願いします
Posted: 2015年7月25日(土) 20:49
by みけCAT
sim さんが書きました:構造体において関数を呼び出す定義ってなんですか?
?????
C++のクラスのことでしょうか?
sim さんが書きました:入力した分数を構造体に格納して返す関数。引数として分数を受けとり標準出力へ出力する関数。
この二つはどうしたらよいでしょうか?
とりあえず型は
コード:
struct fraction read_fraction(void); /* 入力した分数を構造体に格納して返す関数 */
void print_fraction(struct fraction frac); /* 引数として分数を受けとり標準出力へ出力する関数 */
のような感じでいいと思います(比較的小さい構造体なので、ポインタで渡す必要は無いだろう)。
Re: よろしくお願いします
Posted: 2015年7月25日(土) 20:51
by sim
皆さんありがとうございます。
ヒントを参考に頑張ってみます。
Re: よろしくお願いします
Posted: 2015年7月25日(土) 22:21
by sim
#include<stdio.h>
typedef struct fraction
{
int num; /*分子*/
int den; /*分母*/
}fraction;
void show(fraction c);
int main(void)
{
struct fraction fraction1;
printf("分子を入力してください。\n");
scanf("%d",&fraction1.num);
printf("分母を入力してください。\n");
scanf("%d",&fraction1.den);
show(fraction1);
return 0;
}
void show(fraction c);
{
printf("入力された分数は%d/%dです。\n", c.num, c.den);
}
Re: よろしくお願いします
Posted: 2015年7月25日(土) 22:22
by sim
指摘お願いします。
Re: よろしくお願いします
Posted: 2015年7月25日(土) 22:26
by みけCAT
sim さんが書きました:指摘お願いします。
まず、ソースコードを書き込む際はBBCodeを有効にした状態でcodeタグで囲んでいただけると、見やすくてありがたいです。
次に、27行目の最後に付いているセミコロンが蛇足です。
Re: よろしくお願いします
Posted: 2015年7月25日(土) 22:30
by sim
エラー C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
このエラーなんですかね?
Re: よろしくお願いします
Posted: 2015年7月25日(土) 22:31
by みけCAT
sim さんが書きました:エラー C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
このエラーなんですかね?
コンパイラの不都合ですね。
ソースコードの最初の行に
コード:
#define _CRT_SECURE_NO_WARNINGS
というおまじないを書くか、GCCなどに乗り換えるといいでしょう。