C言語の問題が2問ほどわからなかったので教えて下さい。
問1、西暦*y年*n月*d日の日付を”前の日”あるいは”次の日”の日付に変更する関数を作成せよ。
void decrement_date(int *y,int *n,int *d){
vod increment_date(int *y,int *n,int *d){ を使え。
閏年を考慮して計算を行うこと。
問2、要素型がint型で要素数がnの配列を受け取って、全要素に添字と同じ値を代入する関数set_idxを作成せ よ。
void set_idx(int *v,int n){ を使え。
考えたのですがわからないので、教えて下さい。お願いします。
No.2ベストアンサー
- 回答日時:
考え方は、だいたいよいかと思いますが、その考えをうまく「言葉」にできていないようです。
○ 関数は
型 名前(引数) {
本体
}
という形になります。このとき、本体に別の関数の定義が入ったりましません。
main関数も関数です。
このままでは
void decrement _date(int *y,int *m,int *d)
{ に対応した } がありません。
○ incrementとdecrement が逆になっていませんか?
decrementなのに、一日増やす(次の日にする)ようなプログラムになっています
○> case 10 : (*d==31);*m=*m+1; *d=1; break;
やりたいことは見当付きますが、コンピュータはそう解釈してはくれません。
(*d==31) と書いても「*dが31だったら」という意味にはなりません。
また、31日以外のときに 日付を単純に1日増やす、という処理がありません。
○ printf("前の日は%d年%d月%d日です。\n");
各%dに対応する値が指定されていません。
あと、おそらくここに打ちこんだときにそうなってしまったのだとは思いますが、%dに「全角文字」が使われているので、期待通りには動いてくれません。
No.1
- 回答日時:
まず、どこがわからないのか、はっきりさせましょう。
例えば、問2ですが
int main() {
int v[20];
int n = 20 ; /* vの要素数 */
ここに「vの全要素に添字と同じ値を代入する」 処理を書く
}
という問題だったらわかるのか、これでもわからないのか。
回答ありがとうございます。
問1は
#include <stdio.h>
void decrement _date(int *y,int *m,int *d)
{
の後、
swiitch (*m){
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10 : (*d==31);*m=*m+1; *d=1; break;
case 12 : *y=*y+1; *m=1;*d=1; break;
case 4 :
case 6 :
case 9 :
case 11 : (*d==30);*m=*m+1; *d=1; break;
case 2 : if(*y%4==0)*d==29;*m=*m+1; *d=1;
else *d==28;*m=*m+1;*d=1; break;
}
int main(void)
{
int y,m,d;
printf("年、月、日を入力してください。\n”);
printf("年:”);scanf("%d",&y);
printf("月:”);scanf("%d",&m);
printf("日:”);scanf("%d",&d);
decrement_date(&y,&m,&d);
printf("前の日は%d年%d月%d日です。\n");
return 0;
}
だと思いましたが実行できませんでした。
問2はもう少し考えてみます。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# ポインタの型変換、どうやるんでしたっけ? 2 2022/03/28 11:00
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c言語
-
C言語での引数の省略方法
-
「指定されたキャストは有効で...
-
C言語 エラーの原因がわからな...
-
【C++】関数ポインタの使い方
-
#define _CRT_SECURE_NO_WARNIN...
-
複数桁10進数の*桁目だけを抽出...
-
if と配列の組み合わせ
-
素数 再帰関数
-
数字列を3桁ごとにカンマで区切...
-
read関数をノンブロッキングで...
-
ラップ関数とはどんなものですか?
-
(int *)の意味
-
C言語で分からないところがあり...
-
実数の整数部,小数部の取得
-
int型とfloat型の演算結果
-
単方向リストに適当な値を入れ...
-
16進数の計算の仕方を教えて下さい
-
「{ } で囲むだけ」は正しい?
-
エラー 添字が付けられた値が、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
複数桁10進数の*桁目だけを抽出...
-
【C++】関数ポインタの使い方
-
C言語 エラーの原因がわからな...
-
c++でテンプレートのコードでわ...
-
(int *)の意味
-
ラップ関数とはどんなものですか?
-
数字列を3桁ごとにカンマで区切...
-
c言語のリダイレクトによる円...
-
比較回数と交換回数表示について
-
実数の整数部,小数部の取得
-
if と配列の組み合わせ
-
構造体の勉強中です 合計点の高...
-
PowerShellがうまくいかない
-
c言語の配列を使ってサイコロを...
-
課題でつまってます・・・
-
C言語のサイコロシミュレート
-
エラー 添字が付けられた値が、...
おすすめ情報
すみません。decrement_dateではなくて、increment_dateでした。