swich文とwhile文を用いたプログラムについて
授業の課題で、swich文とwhile文を用いたプログラムを作りなさい。いう課題が出ました。
5桁以上9桁以下の正の整数を入力し、4で割り切れたとき、何桁の数字かを出力。4でわって1余ったとき、すべての桁の合計を出力。3余ったとき、与えられた数の逆を変数に代入し、その変数を出力(単純に表示するわけではなく、数字として表示)
といったものです。
途中からの授業参加で、C言語に関する知識はほとんどありません。do文を用いたプログラムは見つけれたのですが、while文とswich文を用いろということなので、do文は使えないです。
どなたか教えていただけませんか?
今日中にわからないとちょっとやばいです・・・。
よろしくお願いします
No.3ベストアンサー
- 回答日時:
こんな感じでいいのかな?
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "math.h"
int main(int argc, char* argv[])
{
char sInput[32];
int iInput=0;
int iLen=0;
int iMod=0;
int iSum=0;
int iReb=0;
int iCnt=0;
char sBuf[32];
memset(sInput,0,sizeof(sInput));
memset(sBuf,0,sizeof(sBuf));
scanf("%s",&sInput);
iLen = strlen(sInput);
if( iLen > 9 || iLen < 5 )
{
printf("対象桁数外");
return 0;
}
iInput = atoi(sInput);
iMod = iInput % 4;
switch(iMod)
{
case 0:
printf("入力された数字は %d 桁です。",strlen(sInput));
break;
case 1:
while(iCnt < iLen)
{
sprintf(sBuf,"%c",sInput[iCnt]);
iSum += atoi(sBuf);
iCnt++;
}
printf("入力された数字の合計は %d です。",iSum);
break;
case 3:
iReb = 0;
while(iCnt < iLen)
{
iCnt++;
sprintf(sBuf,"%s%c",sBuf,sInput[iLen-iCnt]);
}
iReb = atoi(sBuf);
printf("入力された数字の逆順は %d です。",iReb);
break;
}
return 0;
}
No.2
- 回答日時:
>do文であったのは、何桁の数字かを出力するもので
桁数がわかるのであれば、すべての桁の合計も出せるでしょう。
>3余ったとき、与えられた数の逆を変数に代入し、その変数を出力
も同様。
No.1
- 回答日時:
では、その見つけたものをdoからwhileに変えれば良いでしょう
繰り返しの判定を先にするか、後にするかの違いだけ(と、とりあえず考えてしまって大丈夫)です。
http://www.geocities.jp/ky_webid/c/index.html
この回答への補足
回答ありがとうございます。
do文であったのは、何桁の数字かを出力するもので、あとの、すべての桁の合計の出し方がわかりません。
解説よろしくお願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
getcの改行判定
-
for文の中にswitch文はいれられ...
-
構文エラー";"が型の前にあり...
-
C言語の課題
-
C言語で電卓を作成する。
-
for文
-
プログラミングで二番目に大き...
-
配列を使って魔方陣
-
10進数からN進数に変換するプロ...
-
c言語で平均をだす
-
C言語の二分法のプログラムにつ...
-
scanfが実行されません
-
if文
-
2÷3などの余りについて
-
信頼区間の1.96や1.65ってどこ...
-
「Aに対するBの割合」と「Aに対...
-
プログラムでの数字につく”f”の...
-
O(n log n)について2
-
if と配列の組み合わせ
-
関数f(x)= x³‐3ax²+3ax+2 が極...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構文エラー";"が型の前にあり...
-
#if 1 #elseの意味について
-
for文の中にswitch文はいれられ...
-
配列を関数に渡す方法
-
10進数からN進数に変換するプロ...
-
getcの改行判定
-
C言語で電卓を作成する。
-
プログラミングで二番目に大き...
-
配列を使って魔方陣
-
C言語プログラムが理解できなくて…
-
計算結果がlong型以上になる場...
-
scanfが実行されません
-
素因数分解のプログラムを作成...
-
プログラム
-
while文を使った問題なのですが...
-
C言語階乗の総和を求める
-
C言語 エラー表示 break の位...
-
C言語の二分法のプログラムにつ...
-
階乗のプログラム!!
-
初心者です。for文、if文を使っ...
おすすめ情報