プロが教えるわが家の防犯対策術!

わからない問題が三問あるので質問させてもらいました。色々やってみたんですけどわからないまま気付いたら5日たってしまって、全くらちが明かないもので…(^ω^;)プログラミングはLinuxのGNOME端末を使っています。



■アルファベットの小文字1文字を入力し、そのアスキーコードと大文字を出力するプログラムを作成しなさい。■

自分なりにやってみたんですが、
エラーがでまくるんでやり直してます↓
***************************

[ 実行結果 ]
Input small capital
r
The original character is r.
The ASCII Code is 114(0x72).
The large capital is R.

****************************


■キーボードから慎重と体重を入力し、BMI値を計算するプログラムを作成しなさい。{BMI=体重(kg)÷(身長(m)×身長(m))}■

この問題は途中までできたんですが、
一行詰まってしまいました('A`)
***************************

#include <stdio.h>
int main(void){
float height, weight, bmi;

printf("Input weight(kg) and height(m)\n");
scanf ("%f %f",&weight, &height);
bmi = [ ココがわかりませんでした(・ω・`)] ;
printf("BMI = %f \n", bmi);
return 0;
}

*************************

■ブランク定数とアボガドロ数を書式指定して以下のように表示するプログラムを作成せよ。■

コレは最初っからわかりませんでした(・ω・`)
***************************
[ 実行結果 ]

ブランク定数
0.000000
0.000000000000000000000000000000000663
6.630000e-34
6.6e-34
6.63e-34
アボガドロ数
601999999999999995805696.000000
601999999999999995805696
6.020000e+23
6.02e+23
6.02e+23
6e+23


全く進まないかもしれないけど
とりあえず返事が来るまで自分でやってみますp(・∩・)q

A 回答 (4件)

ソースコードを書いても勉強にならないので、ヒント。



1)アルファベットの小文字→大文字
・man 3 ctype
・man 3 toupper
char型変数の内容は、ASCIIコードそのもの。

2)BMIの計算
・掛け算の演算子は *
・割り算の演算子は /
・* と / は優先順位が同じなので、除数を先に計算させるためには括弧も必要(小学校の算数だね?)

3)"プ"ランク定数(Planck's constant)とアボガドロ数(Avogadro constant)
・man 3 printf
・アボガドロ数は明らかに有効数字の桁数が大きいのでfloatでは精度が足らんね。ではどうすればいい?そう、doubleを使えばいいのだな。

さて、
日本語マニュアルがインストールされていないならば参考URLに挙げてあるJMを参照すればよいでしょう。

参考URL:http://www.linux.or.jp/JM/index.html
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました<(_ _)>
この文を読んで自分の躓いていたところが
ショボイことを再認識させられました(;・∀・)
コレ読んで、成る程って感じです。

今度質問させてもらう時は、
もう少し難易度の高い質問が
出来るようにがんばります。笑

お礼日時:2005/10/07 18:36

#3です。



修正というか補足。

JMではCTYPEがないですね。

代わりに
man 3 isalphaなど。
    • good
    • 0

//1番目だけ


//3番目はprintfの仕様を良く読みましょう

#include <stdio.h>
#include <ctype.h>

int main(void){
char x;

printf("Input small captal\n");
x=(char)getchar();
printf("The original character is %c.\n", x);
printf("The ASCII Code is %d(%#02x).\n", x, x);
printf("The large capital is %c.\n", toupper(x));

return 0;
}
    • good
    • 0
この回答へのお礼

ありがとうございました<(_ _)>
今日まで自分なりに頑張って、
その後ココを見たら質問した問題は
完璧に解決しました(´ω`)

まだC言語を勉強し始めたばかりなので
簡単な問題(自分にとっては大問題 笑)
で躓いてましたが、理解できた時に
久しぶりに「あぁ~」って言いましたょ('A`*)

またいつか質問をすると思うので
暇だったら相手をしてください(*- -)(*_ _)ペコリ

お礼日時:2005/10/07 18:32

BMIのプログラムに関してのみアドバイスを。



1. 「BMI値を表示する」のではなく「身長と体重を表示する」のであれば、できますか?(これができないようであれば、この問題を解く以前の段階です。しっかり復習しましょう。)

2. 「身長と体重を表示する」のかわりに「身長の2倍と体重の2倍を表示する」では?

3. 「身長×体重を表示する」ならば?

4. 「体重÷身長」なら?
    • good
    • 0
この回答へのお礼

そうですね('A`)

bmi = [ ] ;
printf("BMI = %f \n", bmi);

この二行だけをいじれば
ちゃんと動いてたのに
それに気付かなかったとは…(;´Д`)

お礼日時:2005/10/07 18:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!