みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

C言語(高校1年の内容)について

C言語のプログラムが分かりません。教えて下さい。
---------------------------------------
課題1(kadai1.c)
画面に次のような表示を行うプログラムを作成しなさい。
new computer "POWER PC601"---> \400000(15.5%OFF)
(ヒント)素直に表示させようとすればエラーが出るはずです。
「"」「¥」「%」の表示のさせかたに注意。
ただし、商品名、価格、値引率は、変数として代入すること。
---------------------------------------
といった内容です。本当によく分かりません。助けて下さい。

投稿日時 - 2008-10-02 21:06:10

QNo.4373064

困ってます

質問者が選んだベストアンサー

>ようするに、何が分からないかというと、変数を3つも、どうやって代入するかですよ。

 異なる「型」の変数を3つ用意して、=を用いて代入(コピー)すればよいです。

>(ヒント)素直に表示させようとすればエラーが出るはずです。

★下のソースに示すとおり、『おもいっきり』素直にすれば、エラーは出ませんよ。
 (Borland C++5.6.4)

 なお、『おもいっきり』素直になるには、以下を参照して下さい。

 http://e-words.jp/p/r-ascii.html
 http://www.k-cube.co.jp/wakaba/server/format.html

#include<stdio.h>
#include<string.h>

void main()
{
 int iKakaku;
 double dNebiki;
 char cSyouhinMei[ 16 ]; // 年寄りは、8の倍数が心地よいです

 iKakaku = 400000; // 「代入」
 dNebiki = 15.5;

 strcpy( cSyouhinMei, "POWER PC601" ); // 「コピー」

 printf( "new computer %c%s%c", 0x22, cSyouhinMei, 0x22 );

 printf( "---> %c%d", 0x5C, iKakaku );

 printf( "(%4.1lf%cOFF)\n", dNebiki, 0x25 );
}
注:インデントに全角空白を用いています。タブに一括変換して下さい。

投稿日時 - 2008-10-03 11:59:33

お礼

みなさん、丁寧に解説ありがとうございました。
これからも、C言語の勉強をがんばっていきたいと思います。

投稿日時 - 2008-10-03 18:20:17

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.5

1つ代入できれば、それを3つ書けばいいだけですよ。
>char name[12]="\"POWER PC601\"";
ここは、
char name[]="POWER PC601";
として、
最終的に表示するときに「"」を追加したほうがいいでしょう。
商品名に「"」が入っているわけではないですから。
あと、価格と値引率ですね。
価格は整数、値引率は実数で。
400000と、15.5をそれぞれ代入できる変数を用意すればいいです。

投稿日時 - 2008-10-03 10:48:10

ANo.4

Wr5

>変数を3つも、どうやって代入するかですよ。

変数、3つ用意してそれぞれ代入(あるいは初期化)すればよろしいでしょう。
文字列だと代入は面倒かもしれませんが。
# 標準関数のstrcat()なり使うでしょうね。

ところで…
>char name[12]="\"POWER PC601\"";
要素数、14個は必要かと思われますけど…。

投稿日時 - 2008-10-03 00:26:39

ANo.3

例えば、
char name[]="ABC"; /* 文字列 */
int cost=100; /* 整数 */
double rate=10.5; /* 小数 */
printf("NAME=%s COST=%d RATE=%g \n",name, cost, rate);
ってやると、
NAME=ABC COST=100 RATE=10.5
と表示されませんか?

投稿日時 - 2008-10-03 00:19:55

ANo.2


最低限、
 自分でどのように挑戦したか
 結果、どのようにうまくいかないか
程度の情報は出さないと。

今後、卒業までのすべての課題をここで聞くつもりですか?

投稿日時 - 2008-10-02 23:11:10

補足

 

投稿日時 - 2008-10-02 23:22:37

お礼

20 #include <stdio.h>
30 int main (void)
40 {
50 char name[12]="\"POWER PC601\"";
ようするに、何が分からないかというと、変数を3つも、どうやって代入するかですよ。
" \ % の表示方法は分かっています。

投稿日時 - 2008-10-02 23:28:28

「文字あるいは文字列の中では、ある種の文字は \n(改行)のようにエスケープ系列で表される。これらの系列は2文字のように見えるが、それが表すのはあくまでも一つの文字である。」(「プログラミング言語C」46頁)

投稿日時 - 2008-10-02 21:23:37

お礼

さっそくご返答ありがとうございます。
そのへんは、ぎりぎり分かっているのですが、実際のプログラムの書き方がわかりません。

投稿日時 - 2008-10-02 22:25:19

あなたにオススメの質問