C言語入門書の演習で・・・

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ジャレミー

C言語入門書の演習で・・・

#1

投稿記事 by ジャレミー » 15年前

初めまして、3日前ほどから勉強し始めた初心者なのですが、早速演習で詰まってしまったために質問しに来ました・・・

演習
下に示すように、二つの整数値を読み込んで、前者の値が後者の何%であるかを表示するプログラムを作成せよ。

二つの整数を入力してください。
整数A:54
整数B:84
Aの値はBの64%です。


一応二つの整数の表示・入力方法は理解してます。
%で値を表示する方法がわかりません。
よろしければご教授お願いいたします。

Dixq (管理人)

Re:C言語入門書の演習で・・・

#2

投稿記事 by Dixq (管理人) » 15年前

> ジャレミーさん

初めまして、こんばんは。管理人です^^
これから勉強されるのですね、難しい事も多いと思いますが、頑張ってください☆

さて、実装方法は沢山ありますけど、double型などの「実数」に関することは勉強されていますか?
とりあえず今回は整数のみで計算できる方法を試してみましょうか。

まず入力関連は置いておきましょう。
54と84という数値を用いて64%を表示させる方法について検討してみましょう。

%というのはどうやったら表示出来るでしょう?

Aが1
Bが2

ならAはBの50%だと解りますね?
これはどうやって解ったのでしょう?
今何らかの計算をご自分の頭でされたと思います。その計算式を式にあらわしてみましょう。
もう少しヒントをだすと

Aが1
Bが4

ならAはBの25%ですね。
どうでしょう。式が見えてきませんか?

ジャレミー

Re:C言語入門書の演習で・・・

#3

投稿記事 by ジャレミー » 15年前

>管理人さん初めまして。これからお世話になるかと思います。
よろしくお願いします。

一応テキスト通りに進めていたところint型しか学習していないところでこの演習がでてきたので、int型で無理やり組んでみました。

#include<stdio.h>

int main(void)
{
int n1,n2;

puts("二つの整数を入力してください。");
printf("整数A:"); scanf("%d",&n1);
printf("整数B:"); scanf("%d",&n2);

printf("Aの値はBの%d%%です。\n",(n1*100)/n2);


return(0);
}

アドバイスの通り式を考えてみたのですが、不思議なことに…w
int型って整数しか扱えないんですね…これでいいのかな?

Dixq (管理人)

Re:C言語入門書の演習で・・・

#4

投稿記事 by Dixq (管理人) » 15年前

おぉ、こんなにも早く的確な答えが。
完璧じゃないですか、小数が扱えない時は、かける順番をかえたらいいって事、
私は3日で思いついたりしませんでしたよ^^;

しかも%を2つ並べて表示されているのも素晴らしい。

これからも頑張ってください☆


※付け加えるとしたら2回目に0が入力された時のエラー処理をしないといけない位でしょうか?

ジャレミー

Re:C言語入門書の演習で・・・

#5

投稿記事 by ジャレミー » 15年前

>管理人さん

これでいいのですね!
いやー、なんかとりあえず答え出るように無理やり組んでみたらこうなりましたw

%についてはテキストに注釈で書いてあるところがあったので覚えてました。


ありがとうございます!頑張ります!

Dixq (管理人)

Re:C言語入門書の演習で・・・

#6

投稿記事 by Dixq (管理人) » 15年前

さっきの投稿「※」欄付け加えておいたのですが、
プログラムでは「0で割ってはいけない」と言う事を常に頭に入れておかないといけないって事があるので、余力があれば覚えておかれるとよいと思いますよ^^
まぁ始めて3日目なら良いと思いますが、頭の片隅にでも入れておいてください。

大規模なプログラムが突然エラー落ちした・・その原因は沢山の計算過程の一つに0割があった・・なんてこともたまにあるので。


※ 何故0で割ってはいけないか?

a ÷ b = c

という方程式があったとしましょう。両辺にbをかけて

a = c × b

となったとしましょう。ここでa=1、b=0の時この方程式はどうなるでしょう?

1 = c × 0

が成り立つcを答えてください。そう、数学的に不可能なんですよね。
(またa=0ならば、cは何でもいいなんておかしな答えにもなります)
こういうのにもし興味があればこんな動画も面白いかも知れません^^

[nico]http://www.nicovideo.jp/watch/sm1324200[/nico]

ジャレミー

Re:C言語入門書の演習で・・・

#7

投稿記事 by ジャレミー » 15年前

>管理人さん

プログラミングは数学的な要素が結構あるみたいですね…辛いなぁー。
エラー処理についてはまだ手が回らないところなのでとりあえずテキスト通り進行していきたいと思います。

0についてですが興味はありますが、頭が・・・w

とりあえず今回は解決できました!
ありがとうございました!

閉鎖

“C言語何でも質問掲示板” へ戻る