luckymako の回答履歴

全97件中1~20件表示
  • 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
  • 多次元配列のソートがうまくいかない

    多次元配列のソートがうまくいかない 質問失礼します. 以下のような,String型,int型,double型の混在した多次元配列([3][3]の配列)をソートするプログラムを作成しました. このプログラムでは3番目の項目でソートを行っています. 問題点なのですが, 3番目の項目がdouble型の一桁(例えばarray[1][2]が2.0)ならばうまくソートできるのですが, 一つを2桁(例えばarray[1][2]を10.0)にすると何故か先頭の数(10.0の場合1)を基準にソートされてしまっているようです・・・ 配列へのデータの入れ方が間違っているのでしょうか? 原因がはっきりわからず困っているのですが, わかる方いましたらよろしくお願いします. public class Sort_test { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ String[][] array = new String[3][3]; array[ 0 ][ 0 ] = "A"; array[ 0 ][ 1 ] = 2001+""; array[ 0 ][ 2 ] = 9.0+""; array[ 1 ][ 0 ] = "B"; array[ 1 ][ 1 ] = 1001+""; array[ 1 ][ 2 ] = 2.0+""; array[ 2 ][ 0 ] = "C"; array[ 2 ][ 1 ] = 3001+""; array[ 2 ][ 2 ] = 6.0+""; TheComparator comparator = new TheComparator(); // 3番目の項目でソートするように設定 comparator.setIndex( 2 ); // ソート実施 Arrays.sort( array, comparator ); dump(array); } public static void dump( String[][] array ) { for ( int i = 0;i < array.length;i++ ) { for ( int j = 0; j < array[ i ].length;j++ ) { System.out.print( "\t" + array[ i ][ j ] ); } System.out.println(); } } } //多次元配列ソート用クラス class TheComparator implements Comparator { /** ソート対象のカラムの位置 */ private int index = 0; /** ソートするためのカラム位置をセット */ public void setIndex( int index ) { this.index = index; } public int compare( Object a, Object b ) { String[] strA = ( String[] ) a; String[] strB = ( String[] ) b; return ( strA[ index ].compareTo( strB[ index ] ) ); } }

  • java の配列についての質問です。

    java の配列についての質問です。 java 及び C++についての知識は初心者です。 public abstract class Plan implements Shapeable { Shape[] shape = new Shape[5]; Shape[0] = new Rectangle(10,10,10,10); // x,y 座標 及び 長さ、高さ Shape[1] = new Triangle(10,10,30,10,20,20); // 3点間の座標        Shape[2] = new Triangle(20,10,40,10,30,20);        Shape[3] = new Triangle(15,15,35,15,25,25); Shape[4] = new Circle(20,20,20); // 円の座標と半径     public float[] calculaterAreas(){ ??????????????????? } 内容としては複雑なのですが、三角形、四角形、円の面積をShapeというclassの配列にあるデータ(座標や長さなど) を使ってShapeの配列のデータを置き換えてfloatのデータとして返すんですが・・・・。どうやっていいのかさっぱり わかりません。面積については、Rectangle,Triangle,Circleのクラスでそれぞれ計算できるようになっているのですが、それを持ってくる方法もわかりません・・・どうしたらいいのか教えてください 宜しくお願いします。 ちなみに Rectangle,Triangle,Circle class の area の メソットは --- Rectangle class public class Rectangle extends Shape{ int x; int y; int width; int height; public float area(Rectangle r) { return r.width * r.height; } --- Circle class public class Circle extends Shape{ int x; int y; int radius; public float area(Circle c) { return (float) (c.x * c.y * 3.14); } } --- Triangle class public class Triangle extends Shape{ int x; int y; int x2; int y2; int x3; int y3; public float area(Triangle t) { float dt1,dt2,dt3; float s1; float area1; dt1 = Point.distance(x, y); // Point は dt2 = Point.distance(x2, y2); dt3 = Point.distance(x3, y3); s1 = (dt1+dt2+dt3)/2; area1 = (float) Math.sqrt((s1-dt1)*(s1-dt2)*(s1-dt3)); return area1; } } *** Shape class public abstract class Shape implements Shapeable { public abstract float area(Shape obj); } *** Shapeable インターフェイス public interface Shapeable { float area (Shape obj); } ** コンストラクター等は省略してあります。

  • チェックボックスを動的に生成する

    SwingでDBから取得したデータの件数分のチェックボックスを動的に生成したいのですが、方法がわかりません。どなたか教えて下さい。

  • どんな条件式を使えばいいですか?

    選択(標準入力)した値によってその後の処理が変わる場合って どんな条件式を使ったらよいのでしょうか? その後の処理とは下記のようなものです。 ↓ 『いくら支払うかを、まず標準出力して決める。 1~3から購入する商品を選択。 1~3以外の商品番号を選択した場合⇒選択する処理に再度戻る。 いずれかの商品を購入⇒まだ残高があるので再度購入するため 商品を選択する処理に戻る。 いずれかの商品を購入⇒おつり0円になったので処理を終了。』 という感じで、入力した値によってそれぞれ別々の処理に戻ったり 処理を終了させたりといった風にしたいんですが・・・ ちなみに“購入後残高”を取得する処理以外は他のメソッド を呼び出したりせず、mainメソッド内のみで処理を行うとします。

    • ベストアンサー
    • j-dean
    • Java
    • 回答数5
  • エクリプスを使って作成(困っています)

    Swimgでエクリプスを使ってかんたんな四則演算画面作成をしているんですがJAVA未熟者でよく意味がわからないのです。参考書を見てもチンプンカンプンでネットで調べても引っかかるとことがありません。 簡単な四則演算で数値以外の入力は不可でまたはエラー表示にしリストボックスで演算子を選べるようにしてラジオボタンで10進数表示か16進数表示できるようにして出力ボタン(入力不可)で結果が出るのが作りたいのです。どなたかお教えになってください。又は良いURLをお教えください。 お願い致します。

  • for,while文とreturn

    for文やwhile文の中にreturnは入れれない? 指定がないとコンパイルエラーがでますが どうしてでしょうか。

  • System.out.print

    System.out.print()の outは Systemクラスのoutフィールドだそうです。 しかし、out.print(~)の形は意味がわかりません。 つまり、「フィールド.メソッド()」の意味がわからないのです。 普通は A a = new A(); とやって 「a.メソッド」つまり 「参照型変数.メソッド()」とやるはずです。 「フィールド.メソッド」の意味がよくわかりません。 よろしくお願いいたします。

    • 締切済み
    • ppp1984
    • Java
    • 回答数12
  • System.out.print

    System.out.print()の outは Systemクラスのoutフィールドだそうです。 しかし、out.print(~)の形は意味がわかりません。 つまり、「フィールド.メソッド()」の意味がわからないのです。 普通は A a = new A(); とやって 「a.メソッド」つまり 「参照型変数.メソッド()」とやるはずです。 「フィールド.メソッド」の意味がよくわかりません。 よろしくお願いいたします。

    • 締切済み
    • ppp1984
    • Java
    • 回答数12
  • System.out.print

    System.out.print()の outは Systemクラスのoutフィールドだそうです。 しかし、out.print(~)の形は意味がわかりません。 つまり、「フィールド.メソッド()」の意味がわからないのです。 普通は A a = new A(); とやって 「a.メソッド」つまり 「参照型変数.メソッド()」とやるはずです。 「フィールド.メソッド」の意味がよくわかりません。 よろしくお願いいたします。

    • 締切済み
    • ppp1984
    • Java
    • 回答数12
  • for文&if文を使った問題について教えてください。

    参考書の練習問題を解いていて、応用力がないのか理解できない ので、分かる方教えていただけませんか? 問題: キーボードから整数を入力させ、その数が素数であるかどうかを 判断するコードを記述してください。 解答: import java.io.*; class SampleP5 { public static void main(String[] args) throws IOException { System.out.println("2以上の整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); for(int i=2; i<=num; i++){ if(i = = num){ System.out.println(num + "は素数です。"); } else if(num % i = = 0){ System.out.println(num + "は素数ではありません。"); break; } } } } 例えば"7"を入力すると「7は素数です」と出力されるようなんですが、 『i = 7』だとして、『 if(i = = num)』の条件って当てはまるん ですか?for文でiの初期値が2だから、『2 = = 7』で当てはまらない と思うんですが・・・ 考え方が間違っているんですかね? ※ちなみに(= =)のところ、実際はスペース空いてません。  ここの画面での表示上くっついて1本の線になってしまうので、  スペースを空けて入力したまでです。

    • ベストアンサー
    • noname#205525
    • Java
    • 回答数5
  • for文&if文を使った問題について教えてください。

    参考書の練習問題を解いていて、応用力がないのか理解できない ので、分かる方教えていただけませんか? 問題: キーボードから整数を入力させ、その数が素数であるかどうかを 判断するコードを記述してください。 解答: import java.io.*; class SampleP5 { public static void main(String[] args) throws IOException { System.out.println("2以上の整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); for(int i=2; i<=num; i++){ if(i = = num){ System.out.println(num + "は素数です。"); } else if(num % i = = 0){ System.out.println(num + "は素数ではありません。"); break; } } } } 例えば"7"を入力すると「7は素数です」と出力されるようなんですが、 『i = 7』だとして、『 if(i = = num)』の条件って当てはまるん ですか?for文でiの初期値が2だから、『2 = = 7』で当てはまらない と思うんですが・・・ 考え方が間違っているんですかね? ※ちなみに(= =)のところ、実際はスペース空いてません。  ここの画面での表示上くっついて1本の線になってしまうので、  スペースを空けて入力したまでです。

    • ベストアンサー
    • noname#205525
    • Java
    • 回答数5
  • for文&if文を使った問題について教えてください。

    参考書の練習問題を解いていて、応用力がないのか理解できない ので、分かる方教えていただけませんか? 問題: キーボードから整数を入力させ、その数が素数であるかどうかを 判断するコードを記述してください。 解答: import java.io.*; class SampleP5 { public static void main(String[] args) throws IOException { System.out.println("2以上の整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); for(int i=2; i<=num; i++){ if(i = = num){ System.out.println(num + "は素数です。"); } else if(num % i = = 0){ System.out.println(num + "は素数ではありません。"); break; } } } } 例えば"7"を入力すると「7は素数です」と出力されるようなんですが、 『i = 7』だとして、『 if(i = = num)』の条件って当てはまるん ですか?for文でiの初期値が2だから、『2 = = 7』で当てはまらない と思うんですが・・・ 考え方が間違っているんですかね? ※ちなみに(= =)のところ、実際はスペース空いてません。  ここの画面での表示上くっついて1本の線になってしまうので、  スペースを空けて入力したまでです。

    • ベストアンサー
    • noname#205525
    • Java
    • 回答数5
  • for文の問題について・・・

    練習問題を解いていて、分らなかったので解答を見たのですが、 なぜそうなるのか理解出来ないので、教えていただければと思います。 分かる方にはすごく簡単なことなのかもしれないけど・・・ 問題:次のように画面に出力するコードを記述しなさい。 * ** *** **** ***** 解答: class SampleP4 { public static void main(String[] args) { for(int i=1; i<=5; i++){ for(int j =0; j<i; j++){ System.out.print("*"); } System.out.print("\n"); } } } i=1 : j=0 i=2 : j=0 i=2 : j=1 i=3 : j=0 i=3 : j=1 i=3 : j=2 ↑こういう感じで数字が増えていくので、それを*に置き換えれば 答えの通りになるのは理解出来るのですが、なぜ『i<=5』なのに i=3で終わっているんですか? i=4 : j=0 i=4 : j=1 i=4 : j=2 .... というふうにまだ続く気がするんですが。 初歩的な質問ですみません。 あまり専門用語を使われても理解出来ないと思うので、 丁寧に解説してくださる方歓迎します。 よろしくお願いします!

    • ベストアンサー
    • noname#205525
    • Java
    • 回答数5
  • for文

    C言語の本を読んでいて、for文の(i=0;i<count;--i)とあるのですが for(i=0;i<count;i--)とどう違うのでしょうか?それぞれコンパイルした のですが、同じように実行できましたので、余計にわからなくなりました。

  • 関数とポインタについて

    #include <stdio.h> void test(int *p); int main() { int i; test(&i); printf("%d",i); return 0; } void test( int *p) { static int k; k = 10; p = &k; } このようなプログラムを作って、void test()のkの値をmain関数で受け取りたいのですが、どのようにすればよいのかわかりません。 どなたか教えていただけませんか?