今自分でC言語の勉強をしているのですが、解けないプログラムが本に載っていましたので教えてください。
#include<stdio.h>
struct DATE_DATA
{
int yy, mm, dd;
};
void sub1(struct DATE_DATA *data, int i);
void sub2(struct DATE_DATA *data, int i);
void main(void)
{
int i;
struct DATE_DATA data[5];
for(i = 0; i < 5; i++)
{
sub1(&data[i], i);
}
for(i = 0; i < 5; i++)
{
sub2(&data[i], i);
}
}
void sub1(struct DATE_DATA *data, int i) /&data[i] ,iの
{ アドレスを受け取る/
printf("%d回目\n", i + 1);
printf(" year = ");
printf("%d", &data->yy); /構造体ポインタ変数名->メンバ名
printf(" month = "); なのにdataの前に&が付いている/
printf("%d", &data->mm);
printf(" day = ");
printf("%d", &data->dd);
}
void sub2(struct DATE_DATA *data, int i)
{
printf("%d回目 ", i + 1);
printf("%02d/", data->yy); /dataの前には&が付いていない/
printf("%02d/", data->mm);
printf("%02d\n", data->dd);
}
長くなりまして、すみません。質問がプログラムの中にあることも、すみません。
どうしても分からなくて回答をお願いします。
No.1ベストアンサー
- 回答日時:
現在勉強中という事で,ヒントを
mainの中で,sub1とsub2を呼出していますが,引数の渡し方はどうしていますか?
又,sub1のprintf関数で表示されるのは何ですか?
sub2の表示内容は判りますよね?
この回答への補足
すみません!間違え箇所がありました。
#include<stdio.h>
struct DATE_DATA
{
int yy, mm, dd;
};
void sub1(struct DATE_DATA *data, int i);
void sub2(struct DATE_DATA *data, int i);
void main(void)
{
int i;
struct DATE_DATA data[5];
for(i = 0; i < 5; i++)
{
sub1(&data[i], i);
}
for(i = 0; i < 5; i++)
{
sub2(&data[i], i);
}
void sub1(struct DATE_DATA *data, int i) /&data[i] ,iの
{ アドレスを受け取る/
printf("%d回目\n", i + 1);
printf(" year = ");
scanf("%d", &data->yy); /構造体ポインタ変数名->メンバ名
printf(" month = "); なのにdataの前に&が付いている/
scanf("%d", &data->mm);
printf(" day = ");
scanf("%d", &data->dd);
}
void sub2(struct DATE_DATA *data, int i)
{
printf("%d回目 ", i + 1);
printf("%02d/", data->yy); /dataの前には&が付いていない/
printf("%02d/", data->mm);
printf("%02d\n", data->dd);
}
sub1の部分を全てprintfにしていましたが、悩んでいたのはscanfの部分でした。
回答をおねがいします。間違えていてすみませんでした。
ヒントをいただき冷静に考えてみると、sub2を理解することができました。scanfはhitomuraさんに教えていただいたHPを見たり、本を片っ端から取り出して内容を把握することができそうです。本当にありがとうございました。今後も宜しくお願いします。
No.2
- 回答日時:
(No.1のyo-kan-62さんの回答を見て)…そーか、勉強中ですよね。
では、関連サイトを挙げるだけにします。
scanf()の解説:
http://www.microsoft.com/japan/developer/library …
演算子の優先順位:
http://www.microsoft.com/japan/developer/library …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# 未解決の外部シンボル _printfが関数_mainで参照されました 1 2022/09/18 15:28
- C言語・C++・C# アセンブラ指令 3 2023/06/17 14:47
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# 現在プログラムを作っているのですが、実行したときに写真のように結果が表示されるのですが、これを CH 2 2023/01/18 16:22
- C言語・C++・C# プログラミングペーパーテスト 次の問題の実行結果を答えろ #include int x[ ] = { 1 2022/06/16 21:49
- C言語・C++・C# プログラミングの授業のペーパーテスト 実行結果を答えろ #include int x[ ] = {1 3 2022/06/16 20:08
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
既約分数の表示プログラム
-
10個出力で改行したいのですが...
-
ホームページをC言語で作りたい...
-
コンパイルエラーについて
-
8人分のテストの点数を入力し、...
-
%P と %X の違い
-
c言語でAからZまでを表示する...
-
Cのdoubleの浮動小数点表示につ...
-
三角形の判別
-
printf で二進表示を行いたい。
-
入力したお金の金額からお札の...
-
分数を表示するプログラム(長...
-
strcmp
-
4の倍数を論理演算で表す。。
-
アドレスの比較について
-
再帰処理 変換
-
C++ 二次関数の重解、虚数解が...
-
球の体積と表面積を表示するプ...
-
C言語で連立一次方程式
-
なぜgccはstdio.hをインクルー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語について
-
printf で二進表示を行いたい。
-
cshの文字列操作(0埋め)
-
10個出力で改行したいのですが...
-
コンパイルエラーについて
-
テキストカーソル位置の取得
-
strcmp
-
unsigned int型について
-
c言語でAからZまでを表示する...
-
printf( " %2d", p * q );
-
コマンドラインに出力した文字...
-
printfの出力内の文字をdefine...
-
ホームページをC言語で作りたい...
-
コマンドプロンプトがすぐ消える
-
小数点切捨て表示
-
【C言語教えてください】sin波...
-
switch分のケースを範囲数?に...
-
二つの整数値の大小比較
-
4の倍数を論理演算で表す。。
-
defineで定数が置き換えられな...
おすすめ情報