• 締切済み

上手くいきません(T_T)

『やさしいC』という本でC言語を勉強しているのですが。ほんの通りに行かなくてつまづいてしまいました。 --------------------------------------- #include <stdio.h> int main(void) { printf("%cは文字です。\n",'A'); printf("%dは整数です。\n",'123'); printf("%fは小数です。\n",'10.5'); return 0; } ------------------------------------- と書いて結果が ------------------------------------ C;\WORK>Sample4 Aは文字です。 3355185は整数です。 0.00000は小数です。 ----------------------------------- と出てくるのですが、本では。 ---------------------------- C;\WORK>Sample4 Aは文字です。 123は整数です。 10.500000は小数です。 -------------------------- と表示されるはずだったのですが。 どこご悪いのでしょうか? お願い致します。

みんなの回答

  • Jack3
  • ベストアンサー率37% (3/8)
回答No.2

ごめんw間違えたw

megumi0808
質問者

お礼

どうやら、’’が余計だったようです^^; すみません、有難うございます! よく見ることが大事ですね

全文を見る
すると、全ての回答が全文表示されます。
  • Jack3
  • ベストアンサー率37% (3/8)
回答No.1

君は・・・大学1年生だね? これは初歩的なミスだねw 変数宣言してないからだよ! int n; というのを、 printf~ の上に置いてごらんw もしくは、 double n; を置いてごらんw

megumi0808
質問者

お礼

できました! 本当に有難うございました!^^

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • c言語についての質問です。

    #include<stdio.h> int main(void){ int a; printf("1文字たいぷしてください。\n"); scanf("%d",&a); if(a>=65 && a<=90){ printf("大文字です。\n"); } else if(a>=97 && a<=122){ printf("小文字です。\n"); } else{ printf("大文字でも小文字でもありません\n"); } return 0; } このプログラムは正しくなくて、 intをchar %dを%cにかえなければなりません。 なぜintはダメなんでしょうか? できれば丁寧に教えてください。 お願いします。

  • int型とchar型について

    C言語初心者です。 よろしくお願いします。 ◎1----------------------- #include<stdio.h> int main(void) { int ss[4]="789"; printf("%c\n",ss[0]); return 0; } --------------------------- ◎2----------------------- #include<stdio.h> int main(void) { int *p; p="789"; printf("%c\n",*p); return 0; } --------------------------- ◎1、◎2の2つのプログラムについて疑問があります。 ◎1の「int ss[4]="789";」と◎2の「int *p;」のintの部分は今まで、何の疑問も抱かず、「char」として入力していました。 そこでchar型は1バイトの整数、int型は4バイトの整数ということで容量が違うだけで、intとしても大丈夫だろうと思ったのですが、 ◎1では、「'initializing' : 'char [4]' から 'int [4]' に変換することはできません。」とエラーが出て、◎2では「'char [4]' から 'int *' に変換することはできません。」とエラーが出ます。 intは文字列は扱えないということなのでしょうか? 以上intだと実行できない理由がわかりません。 初歩的なことですいませんが、教えていただけると嬉しいです。

  • ASCIIコード入力

    プログラムを作っていてどうしてもわからなくなりまして… #include <stdio.h> int main(void) { char c; c=38; printf("%c\n",c); return 0; } この場合は&が出てくるからいいんですけど… #include <stdio.h> int main(void) { char c; scanf("%c",&c); printf("%c\n",c); return 0; } この場合は97をscanすると9が出てきます。ASCIIコード入力でaを表示させたいんですが、何が間違っているのでしょうか? 初心者なもので…お願いしますm(__)m

  • ファイル分割について

    今本をみながら練習中なのですが、ファイル分割がうまくいきません。以下のような3つのプログラムをかいたのですが実行できません。 (一つ目:myfunc.h) int max(int x,int y); (二つ目:myfunc.c) int max(int x,int y){ if(x > y) return x; else return y;} (三つ目:sample.c) #include <stdio.h> #include "myfunc.h" int main(void){ int x,y,c; printf("1番目の整数\n"); scanf("%d",&x); printf("2番目の整数\n"); scanf("%d",&y); c = max(x,y); printf("最大値は%d\n",c); return 0;} すべてコンパイルしてsample.cを実行してもだめでした。ご指導お願いします><

  • C言語でscanf()が先に実行されるのはなぜですか?

    C言語でscanf()が先に実行されるのはなぜですか? #include <stdio.h> int main(void){ int intNum; printf("整数を入力してください:\n"); scanf("%d", &intNum); printf("入力値は:%d\n",intNum); return(0); }

  • フィボナッチ数列

    C言語の問題です。 フィボナッチ数列について。 以下のプログラムはある整数を入力し、その整数以下のもっとも大きなフィボナッチ数列に含まれる整数を返すものである。 #include <stdio.h> int main(void){ int limit,new=1,pre=0,work result; scanf("%d", &limit); while(new<=limit){ /*printf("%d %d\n,pre,new);トレース用*/ work=new; new=work+pre; pre=work; } result =pre; printf("%d\n", result); } 以下を参考に、このプログラムの一部を関数にして書き換えなさい。 #include <stdio.h> /*ここに関数を記述*/ int main(void){ int limit,result; scanf("%d",&limit); result = fibnum(limit); printf("%d\n", result); } という問題です。 私は以下のように考えたのですが… #include <stdio.h> void fibnum(int limit){ int f0, f1; f0 = 0; f1 = 1; printf("%d\n", f0); printf("%d\n", f1); while(1){ f0 += f1; if (f0 > limit)return; printf("%d\n", f0); f1 += f0; if (f1 > limit)return; printf("%d\n", f1); } } int main(void){ int limit, result; scanf("%d",&limit); result = fibnum(limit); printf("%d\n", result); return result; } 実行すると 「S:\デスクトップ\v\v.cpp(30) : error C2440: '=' : 'void' から 'int' に変換することはできません。(新しい動作 ; ヘルプを参照) void 型の式は他の型へ変換できません。 cl.exe の実行エラー」 と出てきてしまいます。 考えてみたのですが、エラーの理由がよくわかりません。 どこが間違っているのかなど、ご指摘いただければ嬉しいです。

  • Cのプログラミングを勉強中です。

    Cのプログラミングを勉強中です。 Aの値のBに対する割合を表示すしたいのですが、以下のように記述してもうまくいきません。 どこを直したらよいか教えていただけますか。 #include <stdio.h> int main(void) { int n1 , n2 ; printf("二つの整数を入力してください。\n"); printf("整数A:"); scanf("%d", &n1); printf("整数B:"); scanf("%d", &n2); printf("Aの値はBの%d%%です。\n" , n1 / n2 * 100 ); return(0); }

  • C言語の初歩的な質問

    質問1----------------------------------------- #include<stdio.h> int main() {  int a;  char b[10];  for(int i = 0;i < 2;i++){   scanf("%d",&a);   printf("整数%d\n",a);  }  scanf("%s",b);  printf("文字列%s\n",b); } /* この際に、例えばabと入力すると結果が 整数-858993460 整数-858993460 文字列ab となり整数入力を無視して進められるのはなぜでしょうか? */ 質問2----------------------------------------- #include<stdio.h> void func(int**); int main() {  int *p;  func(&p);  printf("%d",*p); } void func(int **pp) {  int n = 10;  *pp = &n; } /* func関数のnはスコープからはずれて変数の寿命がなくなるはずなのにprintfで表示されるのはなぜでしょうか? */ ---------------------------------------------- C言語は一冊の本とネットの入門サイトをかじった程度の理解です。

  • C言語の初心者です。これを実行してみてください。

    「a」って打ち込んだら「a」ってでましたか? #include<stdio.h> int main(void){ char a; printf("aaa\n"); scanf_s("%c", &a); printf("%c", a); return 0; }

  • 配列要素内の数値

    #include <stdio.h> int main(void) { int arr[1]={123456789}; int *x[1]; *x = arr; printf("%d ",*(x[0])); /* 123456789 と表示*/ return 0;} 実行すると123456789と表示されるまでは分かるのですが、*(x[0])の部分を別の書き方にして、arr[0]に入ってある「123456789」という数値の千の値である6という数値のみを取り出して、表示することは可能なのでしょうか?(6000と取り出したいのではなく、6として取り出したい) 次のように数値を文字列の一つ一つを扱うかのように、扱いたいのです。*(x[0])の部分の変更だけで6を取り出せるような方法はありますか? #include <stdio.h> int main(void) { char *arr[]={"pen"}; printf("%c\n",*(arr[0]+0)); printf("%c\n",*(arr[0]+1)); printf("%c\n",*(arr[0]+2)); return 0;}

このQ&Aのポイント
  • ディズニー映画のパイレーツ・オブ・カリビアンのブルーレイ5ムービー・コレクションが安価に発売されているが、購入する際には注意が必要。
  • ディズニー公式ページではMovieNEX CLUBのマークが書かれており、デジタルコピーが使える可能性があるが、購入サイトにはその情報がない。
  • 実際に購入した人の口コミやレビューを参考にすることで、MovieNEXのマジックコードの有無や使えるかどうかを確認することができる。
回答を見る