luckymakoのプロフィール

@luckymako luckymako
ありがとう数48
質問数3
回答数97
ベストアンサー数
29
ベストアンサー率
55%
お礼率
80%

  • 登録日2006/07/21
  • C言語の問題でわからないところがあります

    先ほども似たような内容で質問させて頂いたのですが、もう一度質問させてください。 最近C言語を勉強し始めたのですが、わからないところがあります。 二つの整数値を読み込んで、小さい方の数以上で大きい方の数以下の整数を全て加えた値を表示するプログラムを作成するものなのですが、うまくいかなく困っています。 他の書き方でやれば普通にいけると思うのですが、これだとできない理由がわからないと、もやもやしてしまうので・・・・ プログラムは以下の通りです #include <stdio.h> int main(void) { int n1,n2,n3,n4; puts("二つの整数を入力してください"); printf("整数1:"); scanf("%d",&n1); printf("整数2:"); scanf("%d",&n2); n3=(n1>n2) ? n2 : n1; n4=(n1>n2) ? n1 : n2; printf("%d以上%d以下の全整数の和は", n3,n4); int num=n3; /* numの最初の値は小さい方の値 */ int wa=0; /* n3が小さい方の数、n4は大きい方の数 */ do{ if (n1>n2) { wa=n4+num; /* 大きいほうの数(num)にsub(小さい方の数+0,2,3,4・・・)を足していく */ num=num+1;/* ここを通るたびにsubに+1 */ printf("%d",wa);} else { wa=n4+num; num=num+1; printf("%d",wa);} }while(num<n4); /* num<n4を満たさない=numが大きいほうの数よりも大きくなったらループを終了 */ printf ("です\n"); /* ですっす */ return 0; } これで大きい方に37、小さいほうに28と入力すると656667686970717273ととても大きな数値になってしまいます。 ループが間違っているのでしょうか? whileは whileの後の()の中身の条件を満たしているとにループする、と認識しているので、numが大きい方の数値より大きくなったとき、ループを終了するようにしているつもりです。 ここがどこか間違っているのでしょうか・・・? それから、初期化というのもいまいち理解していないのですが、intで宣言するときに、中に数値を格納しておく、という物だと思っています。 宣言の後にprintf("%d",num);などで確認すると、代入できているようなので、これは間違っていないと思うのですが・・・・、 間違っているところがざっとみて解りましたら、回答頂けるとありがたいです。 C言語を始めたばかりなので、できれば簡単に説明して頂けるとありがたいです。

  • また、プログラミングで分からなくなったので、

    すみません、学校の課題(C言語)で 「任意の整数Xを入力し、Xの階乗の結果を表示するプログラムを作成しなさい。ただし、Xの階乗の計算は別関数で行い、入力と結果の表示はmain関数で行うようにすること。」 というのが出て、自分なりに作ってみたり、調べたのですが 別関数の意味やmain()の上の分に何が入るのかもわかりません。 それに下のプログラミングでちゃんと動くかもわからないです。 下に載せてみたので、よろしければ色々と言ってください。 お願いします #include<stdio.h> int { } main() { int kotae = 0; int kakezan,count,X; printf("整数Xを入力しなさい"); scanf("%d",&X); for(count = 0; count <= X; count++) { kotae = kakezan * X[count]; } printf("Xの階乗は%dです",kotae); }

  • csvファイルの横方向への改行について

    ある2次元配列があったとして, セルをちゃんと改行しつつcsvファイルに 書き込みをしようとしてるのですが 英字の方へ改行をする方法がわかりません. int a[4][4] ;   :   : FILE *file; file = fopen("condidate.csv","w"); for(int x = 0; x < 5 ; x++) { for(int y = 0; y < 5; y++) { fprintf(file,"%d\n", a[x][y]); } //改行←ここがわからない } fclose(file); csvファイル 1つの配列が1つのセルに入っている状態 ↓  A B C D _ _ _ _ 1 |1 1 1 1 2 |1 1 1 1 3 |1 1 1 1 4 |1 1 1 1 上記のものを作りたいです. よろしくお願いいたします.

  • [000-100]などの文字列を解析したい

    よく連番を表す形でFILE[000-100]などという方式がありますが、 これの[000-100]を解析したいです。 具体的には下記の通りです。 例1 "[000-100]"と引数を渡された場合に000、001...099、100と101個の文字列を返す。 例2 "[0-1000]"と渡された場合には0、1...100と1001個の文字列を返す。 例2の場合はいいのですが、例1の場合に桁数のフォーマットの指定方法がわかりません。(桁数、始まりと終わりは変動します) お手数ですがご教授お願い致します。

    • ベストアンサー
    • tetuya120
    • Java
    • 回答数4
  • [000-100]などの文字列を解析したい

    よく連番を表す形でFILE[000-100]などという方式がありますが、 これの[000-100]を解析したいです。 具体的には下記の通りです。 例1 "[000-100]"と引数を渡された場合に000、001...099、100と101個の文字列を返す。 例2 "[0-1000]"と渡された場合には0、1...100と1001個の文字列を返す。 例2の場合はいいのですが、例1の場合に桁数のフォーマットの指定方法がわかりません。(桁数、始まりと終わりは変動します) お手数ですがご教授お願い致します。

    • ベストアンサー
    • tetuya120
    • Java
    • 回答数4