• ベストアンサー

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

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

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

  • ベストアンサー
  • yama5140
  • ベストアンサー率54% (136/250)
回答No.6

>ようするに、何が分からないかというと、変数を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 ); } 注:インデントに全角空白を用いています。タブに一括変換して下さい。

noname#129461
質問者

お礼

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

その他の回答 (5)

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.5

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

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.4

>変数を3つも、どうやって代入するかですよ。 変数、3つ用意してそれぞれ代入(あるいは初期化)すればよろしいでしょう。 文字列だと代入は面倒かもしれませんが。 # 標準関数のstrcat()なり使うでしょうね。 ところで… >char name[12]="\"POWER PC601\""; 要素数、14個は必要かと思われますけど…。

回答No.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 と表示されませんか?

  • Gizensha
  • ベストアンサー率34% (207/608)
回答No.2

最低限、  自分でどのように挑戦したか  結果、どのようにうまくいかないか 程度の情報は出さないと。 今後、卒業までのすべての課題をここで聞くつもりですか?

noname#129461
質問者

お礼

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

noname#140971
noname#140971
回答No.1

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

noname#129461
質問者

お礼

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

関連するQ&A