• ベストアンサー

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

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

noname#129461
noname#129461

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

  • ベストアンサー
  • 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% (2177/4070)
回答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

  • C言語の不等号の計算

    三つの整数の変数a,b,cを用意して、プログラムの各変数に任意の値を代入する 例:a=9,b=31,c=25 このプログラムを実行して 「a=9,b=31,c=25です.よって b>c>a です.」 と表示するプログラムを組みなさい とゆう課題が出されたのですが switch文を使ってプログラムを組んで課題は終わったのですが・・・ switch文以外方法でこのプログラムが組めるのか プログラムの例を教えてください。 あとプログラムを組むときにはシンプルで行数の少ないプログラムのほうがいいのですか? 教えてくださいお願いします。

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

    C言語のプログラムが分かりません。教えて下さい。 --------------------------------------- 課題3(kadai3.c) 次のプログラムでは、割り算が正しく行われないので、直しなさい。 LIST 3-1 1 /* 1500 工業太郎 */ 2 #include <stdio.h> 3 int main(void) 4 { 5 int a,b,wa,sa,seki,syo; 6 printf("数値を一つ入力してください ->"); 7 scanf("%d", &a); 8 printf("数値をもう一つ入力してください ->"); 9 scanf("%d", &b); 10 wa = a + b; 11 sa = a - b; 12 seki = a * b; 13 syo = s / b; 14 printf("a + b = %d\n", wa); 15 printf("a - b = %d\n", sa); 16 printf("a * b = %d\n", seki); 17 printf("a / b = %d\n", syo); 18 return 0; 19 } --------------------------------------- といった内容です。本当によく分かりません。助けて下さい。

  • C言語プログラムの課題

    大学で以下のような課題が出ました。でも全然わかりません。わかる方がいらっしゃったら、是非教えてほしいです★ 1整数値123を変数iに代入して、iの値を表示するプログラムを作成せよ。 2実数値3.14159を変数xに代入して、xの値を表示するプログラムを作成せよ。 3文字型せーた'A'を変数chに代入して、chの値を表示するプログラムを作成せよ。ただし、chの値を表示する際には、%d,%x,%cの書式を用いること。 4キーボードから入力された2つの整数値i,jの値を画面に表示するプログラムを作成せよ。 5キーボードから2つの整数値を、変数in1とin2に入力して、以下の計算をした結果を画面に表示するプログラムを作成せよ。 in1+in2= in1-in2= in1*in2= in1/in2= in1%in2=

  • C++のcin命令について

     私は、C++言語を勉強している初心者です。  ある日、C++言語では、   「cin >> a >> b >> c;」と書くと、プログラムを実行したときに、   「3 4 5」と入力すれば、変数aには 3 が、変数bには 4 が、変数cには 5 が代入されるということを知りました。  けど、今まで私がC言語を使う際に使っていた、   「scanf("%d,%d,%d",&a,&b,&c);」という文では、プログラムを実行したときに、   「3,4,5」と入力すれば、変数aには 3 が、変数bには 4 が、変数cには 5 が代入されるというように、3つの数字の間にカンマを入れて数を代入するというプログラムを作りたいのですが、どうやってもcin命令では再現できません。  超初心な質問ですが、わかる方がいらっしゃったら、やり方を教えてください。

  • C言語プログラミングで困っています。助けて下さい。

    C言語プログラミングで困っています。助けて下さい。 課題1-1: 実数 a と実数 b を入力すると、一次方程式ax + b = 0 の解を求めるプログラムを作る 課題1-2: 1-1 で作成したプログラムについて、さらにa として1が入力されたとき、方程式の表示       部分が1x + 3 = 0ではなくx + 3 = 0となるようにせよ 課題1-3: 1-2 で作成したプログラムについて、さらにb として0 や負の数が入力されたとき、方程式     の表示部分が2x = 0 や2x – 3 = 0となるようにせよ 課題1-4: 1-3 で作ったプログラムについて、さらにa の値として0が入力された場合、「解けません」     と表示するようにせよ 課題1-5: 係数 a, b, c を入力すると、 2次方程式ax2 + bx + c =0の解を表示するプログラムを作     れ ※ 1-2 ~ 1-4 のような機能を盛り込む ※ a が0の場合には、先に作った1次方程式のプログラムが動く という問題です。最終的にこれらを一つのプログラムにしてください。判別式や解の公式、ルート√などを使ってよろしくお願いします。C言語でお願いします

  • C言語の課題で助けてください

    C言語の課題で毎年10万円ずつ貯金した時、年利が1年複利で1%の場合で 10年たつと貯金残高はいくらになるかという課題です。 ヒント:ループ(for文)、残高変数はdoubleを利用する。 答え:10年後には1056683.466653 となるようです。 というものなのですが、自分なりに試行錯誤してみたのですが答えが合いませんでした。どうか、よろしくお願いします。

  • c言語の初心者です

    c言語の初心者です 2進数を入力して10進数を表示するプログラムを作りたいのですが まったくできません それなので2進数の入力のヒントだけでも教えてもらえないでしょうか?

  • C言語の問題です!!

    C言語の問題です。よろしくお願いします。 A: 次の手順で処理を行うプログラムを作成しなさい. ・int型の変数n1,n2に数値9,3を代入する. ・変数n1,n2の値を"n1=xxx, n2=xxx"のように表示する. ・変数n1の値をn2倍にし,変数n2の値に2を加算する. ・変数n1,n2の値を表示する. ・変数n1とn2の互いの値を入れ替える. ・変数n1,n2の値を表示する. B: 本日の為替相場は,80円/ドル(int型の変数rate_dに格納)と114円/ユーロ(rate_e)である. ドル(usd)を与えて,ユーロ(euro)に変換するプログラムを作成せよ. ただし,小数点以下は切り捨てとする.

  • C言語

    演算がうまくできなくてこまっています。 int hogeと定義した変数があります。 プログラムの途中で色々代入をし終えた結果、 printf(%d,hoge)とすると「49」と表示、 printf(%c,hoge)とすると「1」と表示されます。 %dは10進法のはずなのになぜか49となります。 今このhogeを用いて計算をしたいのです 例えば、hoge = hoge*5+1のように純粋に10進法で計算したのですが、 このままだと49*5+1=...となってしまします。 どうすれば改善出来ますか?

  • C言語の参考書について

    大学の後期の授業でC言語の参考書を買ってくるように言われました。 でもどの参考書がいいのかわからないので教えてください!! 前期の授業では ・C言語で作成したプログラムのコンパイルと実行の 流れ ・コンパイルエラーのエラーメッセージの見方 ・実行時のエラーとプログラムの修正 ・C言語のプログラムの基本形 ・printf()と定数 ・変数 ・数値型 ・文字型 ・文字列 ・printf()の書式指定 ・プログラム記述時の約束、予約語 ・算術演算子 ・代入演算子 ・インクリメント、デクリメント演算子 ・比較演算子(関係演算子) ・式が持っている値 ・論理演算子 ・条件付き代入 を勉強しました。 その範囲は、まだちゃんとに覚えてないけど授業でもらったプリントを見れば一応できます。 それで先生いわく、参考書は入門編でもいいらしいんですけど、さらに実践編も買い足さなければいけないらしいんです。 今の状態で実践編でも大丈夫ですかねぇ??

専門家に質問してみよう