• 締切済み

初級プログラミングCです

-11x+97y=1 という関数を満たす整数(x、y)を求めるプログラムなんですが 自力で考えると #include<studio.h> void main() { int x,y,a; for(x=1;;x++){ for(y=1;;y++){ a=-11*x+97*y+1 if (a==o) printf("(%d,%d)\n",x,y); if (a=!0) break } for(y=0;;y--){ a=-11*x+97*y+1 if (a==o) printf("(%d,%d)\n",x,y); if (a=!0) break } } for(x=1;;x--){ for(y=1;;y++){ a=-11*x+97*y+1 if (a==o) printf("(%d,%d)\n",x,y); if (a=!0) break } for(y=0;;y--){ a=-11*x+97*y+1 if (a==o) printf("(%d,%d)\n",x,y); if (a=!0) break } } } こうなりました xもyも上限がないのでこれでは無限ループであたいがでないとおもいます 実行するにもソフトがないのでわかりませんが たぶん間違えています どこが違いますかね? 根本的に違ったりしますか? 回答お待ちしています

みんなの回答

  • TT414
  • ベストアンサー率18% (72/384)
回答No.2

突っ込みどころ満載ですが、完全な間違いがあるので、 >-11x+97y=1 >a=-11*x+97*y+1 >if (a==o) とありますが、 a=-11*x+97*y-1 if (a==0) が正しいです、 a=-11*x+97*y if (a==1) という書き方もあります。 また「break;」です、セミコロンが抜けています。

回答No.1

> 実行するにもソフトがないのでわかりませんが 無償のコンパイラでも入手してはいかがでしょうか。

参考URL:
http://www.microsoft.com/japan/msdn/vstudio/express/

関連するQ&A

  • プログラミング

    ランダムの数値を入力してその数値より大きければ正解より大きいと表示して小さければ小さいと表示し正解なら正解ともだすプログラムをつくっています 正解まで何回かかったかとも表示したいと思います 上手く実行できないのでご教授ください #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void){ int i,x,y; srand((unsigned int)time(NULL)); printf("%\n",i); i=rand()%100; //0以上100以下の整数を生成 y=0; printf("1以上100以下の整数を入力してください。\n"); scanf( "%d", &x ); /* 数値を入力させる */ printf("1以上100以下の整数を入力してください。\n"); y=y+1; if( x == i ) { printf("%d回目で当たりました。\n",y); printf("%d回目で当たりました。\n",y); break; /* 無限ループ */ } else{ if ( x < i ) //printf("正解より大きいです。\n"); printf("正解より大きいです。\n"); else //printf("正解より小さいです。\n"); printf("正解より小さいです。\n"); } } //return0;

  • C言語のプログラミング (基礎)教えてください。

    以下のような問題があります。 プログラムを作ってみたのですが、 コンパイルすると無限ループになったり、 正しく結果が出ません。 どのように直せば良いか教えていただけると助かります。 よろしくお願いします。 整数が入力される度に今までの合計を出力するプログラムを作成しなさい。なお、0 が入力されたら終了するものとする。 ただし、繰り返しの命令は while 文を使用し、条件は常に真 ( 1 ) とし、break 文を使うこと。 ▼実行例 整数:1     合計:1 整数:2     合計:3 整数:3     合計:6 整数:0 ******************************** #include<stdio.h> int main(void) { int n,sum; sum=0; while(1){ printf("¥n整数:"); scanf ("%d", &n); sum=sum+n; printf("¥n    合計:%d", sum); scanf ("%d", &sum);          if(n==0){ break;   } } }

  • C言語でのプログラミングの問題が分かりません。

    C言語でのプログラミングの問題が分かりません。 課題で出た問題なのですがわからないのでおしえてください。 問題は 値を入力します(nとします) nが1でない間、以下の処理を繰り返します。  (1)nが偶数のとき、nを2で割り、その答えを新しいnとします。  (2)nが奇数のとき、nを3倍してから1を加え、その答えを新しいnとします。 というものです。 if文を使い計算はできたのですが、「繰り返し」と「新しいnとする」部分が分かりませんでした。作成したプログラムを載せるので手直しお願いいたします。 int n,x,y; printf("整数を入力"); scanf("%d",&n); while (n>1) if (n%2) printf("%d",x=n*3+1); else printf("%d",y=n/2); putchar('\n'); return(0); です。このままだと無限ループしてしまうので繰り返しの条件が悪いみたいです。 それと、答えをnに入れたいのにx、yを使ってしまっています。 回答お願いします。

  • プログラミングで質問です。言語はC++です。

    いま、 While文でループし、Enterキーを おすとループから抜けます。 そこで、上矢印キー↑を押すと マウスカーソルがそれに応じて動くようなプログラムを while文でループさせたいのですが やり方がわかりません。 途中まで書いてみたのですが動きません。 詳しく教えていただけると嬉しいです。 #include <stdio.h> #include <windows.h> #include <Windows.h> int main( void ) { printf("roop in\n"); POINT po; while(1){ po.x=0; po.y=0; if( GetAsyncKeyState(VK_RETURN)) break; if(GetAsyncKeyState(VK_UP)&0x8000 <0) po.x+=7; Sleep(500); } printf("roop out\n"); return 0; }

  • 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言語

    forの直後で1+2+3+4+5+・・・・・・・と加算し続ける式がわからないので教えてください。 #include<stdio.h> int main(void) { char moji; int i,sum; printf("正の整数を1から順に加算します。n\"); printf("加算を開始してよろしいですか。(Y=実行。N=終了)\n"); moji=getchar(); if(moji==y) { for(i=2;sum>=1001;i++) { この部分がわかりません; printf("加算値は%dです。¥n",sum); } }else if(moji=='n'){ printf("終了します。\n"); }else{ printf("YまたはNを入力してください。\n"); } return 0; }

  • C++でグラフをリスト構造で作る

    今、『グラフのデータを読み込んで、行列形式で配列に保存するプログラム』を作りました。下記に私の作ったそのプログラムがあります。しかしこの次にこれと同じことを「リスト構造」を使って作らないといけないのですがなかなかうまくいかないです。どのように作ればいいか分かる人がいたら教えてください! #include<stdio.h> #define hairetu 5 int main(void){ int x, y, i, j, a[hairetu][hairetu]; for(i=0; i<5; i++){ for(j=0; j<5; j++){ a[i][j]=0; } } printf("0以下の数を入れると終了します\n"); while(1){ printf("1~5の数のうち、2つ数字を入力しなさい\n"); scanf("%d%d", &x, &y); if(x<=0 || y<=0){ break; } else if(x>5 || y>5){ printf("エラー\n"); return 1; } a[x-1][y-1]=1; } for(i=0; i<5; i++){ printf("\n"); for(j=0; j<5; j++){ printf("%d", a[j][i]); } } printf("\n"); return 0; }

  • C言語 プログラミングで行詰まりました…

    標準入力(キーボード)からi,jk,nの値を入力し、次の漸化式を計算し、X_0からX_nまで求めるプログラムを作成したいのですが、うまく表示されません。どかがおかしいのかご指摘お願いします。 <漸化式> X_n=(a+b)/X_(n-1) , X_0=c(n=0) ================================================================== #include<stdio.h> float f_X(int a,int b,float c) { float y; y=(a+b)/c; return y; } int main (void) { int number,i,j; float k,l,n,X; printf("i:"); scanf("%d", &i); printf("j:"); scanf("%d", &j); printf("k:"); scanf("%f", &k); printf("n:"); scanf("%f", &n); X=k; printf("X_0= %.6f\n",X); for(number=1;number<=n;number++) { l=f_X(i,j,X); printf("X_%d= %.6f \n",number,l); X=l; } return 0; } ===================================================================

  • プログラムについて(C言語)

    #include<stdio.h> int main() { int i,n,total; for(;;){ /* 無限ループ*/ printf("整数n?"); /* nの値の表示 */ scanf("%d",&n); /* ifとbreakを使った終了判定 */ if(n<0)break; total=1; for(i=1;i<=n;i++){ printf("i=%d ",i); total*=i; /* total←total*i(階乗の計算) */ } printf("total=%d\n",total); /* totalの値(結果)の表示 */ } printf("Thanks\n"); /* 終了メッセージの表示 */ return(0); } これは階乗を求めるプログラムなのですが、i++ではなくi--をつかって求める場合 どのように変更すればよいでしょうか? for(i=1;i<=n;i++){ あたりをいろいろ弄ってみたのですが、求めてる結果は得られませんでした

  • 配列のソート(昇順)

    最大で30個の整数データを入力し、それを大きい順に並べ替えるプログラムを1次元配列と繰り返し・if文を使って作成しなさい。 という問題で #include<stdio.h> main() { int a[30],x,y,z; printf("Seisu wo 30 ko Nyuryoku \n"); for(x=0;x<=29;x++) scanf("%d",&a[x]); printf("before sort...\n"); for(x=0;x<=29;x++) printf("%d ",a[x]); for(x=0;x<=28;x++) for(y=0;y<=28-x;y++) if(a[y]<a[y+1]) { z=a[y];a[y]=a[y+1];a[y+1]=z; } printf("\n after sort...\n"); for(x=0;x<=29;x++) printf("%d ",a[x]); } ここまで出来たのですが最大で30個ということなので(例)「10個の整数を入力して Z を入力したら終了」 としたいのですがどこをどのようにすればいいですか?

専門家に質問してみよう