• ベストアンサー

表示方法(?)について質問です。

deaseの回答

  • dease
  • ベストアンサー率0% (0/7)
回答No.2

実行結果が aの値:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ・・・ 100 のようにしたいということですか? でしたら printf("aの値:"); for(a=1; a<100; a++) {   printf("%d ", a); } printf("\n"); ではいかがでしょう? そうではなくて、実行結果が aの値:1aの値:2aの値:3aの値:4 のようにしたいのであれば、提示されたコードでほぼ完成しています。

rokumeikan
質問者

補足

説明が曖昧で申し訳ないです。 変数aの値を挿入モードの様に次々上書きして変数の値を更新していく プログラムを作る方法を聞きたく質問をしました。 別の場所に値を表示させたりしない方法です。

関連するQ&A

  • 表示方法

    C言語で、数値を出力するときに int d = 4; printf("%\n",d); ってやると 4 って表示されるんですけど、 4 じゃなくて、 0004とか0123みたいな 使われない桁も0として表示するにはどうすればいいでしょうか?

  • 表示の仕方

    どなたか教えていただきたいのですが。 c言語初心者です。 たとえば構造体での出力なんですが struct ordience a[]{{1,"nakano",32},               {2,"kanou",39},               {3,"satou",33}}; printf("%d %s %d\n",a.no[1],a.name[1],a.point[1]); 以上で二列目の配列を表示させたいのですがうまくいきません。 どなたか教えていただけませんか?

  • doubleからfloatにすると表示が変になる

    しょうもない質問ですいません。 下記のC言語の行列積のコードでは行列の変数をdoubleとしていますが、これをfloatに全て置き換えると、printfで表示させる結果がバグってしまいます。 原因は何でしょうか? 最近ひさしぶりにC言語を触ったので、しょうもないところでつまずきました。 お願いします。 ----------------------------------------- #include <stdio.h> #include <stdlib.h> #define N 10 //N次の正方行列まで扱えるようにする void matrixmultiply(int n,double a[N][N],double b[N][N],double c[N][N]); int main(int argc, char** argv) { int i,j,n; double A[N][N],B[N][N],C[N][N]; FILE *readin1,*readin2; /*行列の値が書き込まれたファイルを開く*/ if((readin1=fopen("a.dat","r"))==NULL) { printf("a.datを開けません\n"); exit(1); } if((readin2=fopen("b.dat","r"))==NULL) { printf("b.datを開けません\n"); exit(1); } printf("行列の次数を入力してください\n"); scanf("%d",&n); printf("%d次の正方行列の掛け算を行います\n\n",n); /*ファイルから数値を読み込み、配列に代入する*/ for(i=0;i<n;i++) { for(j=0;j<n;j++) { fscanf(readin1,"%lf",&A[i][j]); fscanf(readin2,"%lf",&B[i][j]); } } matrixmultiply(n,A,B,C); //関数を呼び出し行列の掛け算を行う。 /*結果を表示する*/ printf("計算結果\n"); for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%lf ",C[i][j]); } printf("\n"); } fclose(readin1); fclose(readin2); return 0; } /*掛け算を行う行列2つと、結果を入れる行列を引数として受け取る。*/ void matrixmultiply(int n,double a[N][N],double b[N][N],double c[N][N]) { int i,j,k; /*受け取った2つの行列の掛け算を行う。*/ for(i=0;i<n;i++) { for(j=0;j<n;j++) { for(k=0;k<n;k++) { c[i][j]+=a[i][k]*b[k][j]; } } } }

  • 再初期化

    c言語初心者です申し訳ないのですがどなたかおしえてください. struct gakusei a = {2,"saga",98}; printf("%d %s %d \n", a.num,a.namae,a.point); a.num=5; a.namae="satou"; a.kokugo=45; printf("%d %s %d\n", a.no,a.namae,a.point); return 0; } 途中からなのですが、ここで一度表示させたものを違う値をいれて表示させたいのですがnamaeがそのままになってしまいますどなたか教えてください?

  • visualC++を使って、

    visualC++を使って、 ---------------------- 上線の長さは?:8 下線の長さは?:12 縦線の長さは?:3 太さは?:2   ********   ********      **      **      ** ************ ************ ---------------------- ・・・と入力した値に対して「*」を使って「工」という文字の図形が現われるプログラムを作る課題なのですが・・・ とりあえず、試行錯誤をした結果 #include <stdio.h> void main() { int a,b,c,d,e,f,g,h; printf("上線の長さは?"); scanf("%d", &a); printf("下線の長さは?"); scanf("%d", &b); printf("縦線の長さは?"); scanf("%d", &c); printf("太さは?"); scanf("%d", &d); for(e=1; e<=a; e++){ for(h=1;h<=d; e++) printf("*"); printf("\n"); } for(f=1;f<=c; f++){ for(h=1;h/2<=d; h++) printf(" "); for(h=1;h<=d; h++) printf("*"); } for(g=1; g<=b; g++){ for(h=1; h<=d; h++) printf("*"); printf("\n"); } と書いたのまではいいのですが、いざデバッグすると*が無限に現われてしまいます・・・。 C言語なんて今までやったことがない自分には難しくて・・・どうかご教授お願いします。

  • C言語でfor文を用いたプログラミングについてです。

    C言語のプログラミングの課題で以下のような表をfor文を用いて作るというものが出ました。 商品名 単価(円)個数(円) 計  A  50   20   ***  B  90   30   ***  C  30   80   ***        合計金額   *** A,B,C及びそれぞれの単価、個数の値はキーボードからの入力で、***は演算によりその結果を出力するようにします。つまり、商品名(1文字)と単価、そしてその個数をキーボードから入力すると、単価と個数をかけた値と、それら全ての合計が出力されるようなプログラムを作るということです。 私は以下のようなプログラムを作りました #include<stdio.h> int main(void) { int a,b,c,sum,allsum,i; printf("商品名 単価 個数 計\n"); for(i=1;i<=3;i++) { a=getchar(); scanf("%d %d",&b,&c);  sum=b*c; allsum +=sum; putchar(a); printf(" %d %d %d \n",b,c,sum); } printf("合計金額 %d\n",allsum); return 0; } しかしこれでは合計金額がちゃんと表示されなかったりしてうまくいきません。おそらくfor文の中身に問題があると思うんですが…。どうか正しいプログラムと、なぜこのプログラムではうまくいかないのかを教えていただきたいです。なにぶん初心者なもんで、よろしくお願いします。

  • じゃんけんゲームの応用

    • 問1:ジャンケンを十回行って、何勝何敗、何引き 分けかを表示するプログラムを作れ。 • 問2:計算機とじゃんけんを行って、貴方が計算 機より2回多く勝つまで続けるプログラムを作れ。 上記の問題で、どうしても問2がわかりません。"問1を少し変えれば問2はできる"と思うのですが・・・。 どこをどう変えればよいのか、どなたか回答願います。 使っている言語はC言語です。また、私はC言語初心者なので、if文やfor文、do~while文あたりまでしか使えません。 下記に示すのは私が作った、問1のソースです。参考までに。 ---------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <time.h> main(){ int i, a, b;time_t seed; seed=time(&seed); srand(seed*(seed%12345)); a=3.0*(float)rand()/(RAND_MAX+1.0)+1; for(i=0;i<10;i++){ printf("1、2、3 ?\n"); scanf("%d",&b); printf("PCは%d\n",a); if(a==b){ printf("アイコッ!\n"); }else{ if((a==1 && b==2) || (a==2 && b==3) || (a==3 && b==1 )){ printf("PCが勝ちッ!\n"); }else{printf("PCが負けッ!\n");} }/*if の括弧閉じ*/ }/* for の括弧閉じ*/ printf( "結果発表ッ!\n" ); printf( "私は%d 回勝ちッ!\n",b ); printf( "PCは%d 回勝ちッ!\n", a); printf( "引き分けは %d 回ッ!\n", (10 - a - b) ); return 0; }/*main() の括弧閉じ*/ -------------------------------------------------------------- --------------------------------------------------------------

  • 2次元配列を使ったC言語の九九表を作りたいんですが、方法がわかりません。

    C言語で、九九の表を作っているのですが2次配列を使わないでの方法なら出来るんですが、 2次配列を使うと出来なくなってします。 下記のように途中まで組んだのですが、どうしてもエラーがでてしまいます。 #include <stdio.h> int main(void) { int i,j,a[9][9]; printf(" "); for(i=1; i<=9; i++) printf("%3d", i); printf("\n"); for(i=0; i<9; i++){ for(j=0; j<9; j++) a[i][j]= {1,2,3,4,5,6,7,8,9},{2,4,6,8,10,12,14,16,18},{3,6,9,12,15,18,21,24,27},{4,8,12,16,20,24,28,32,36},{5,10,15,20,25,30,35,40,45,6,12,18,24,30,36,42,48,54,7,14,21,28,35,42,49,56,63},{8,16,24,32,40,48,56,64,72},{9,18,27,36,45,54,63,72,81} }; for(i=0; i<9; i++){ printf("%3d", i+1); for(j=0; j<9; j++) printf("%3d",a[9][9]); printf("\n"); } return 0; } とやったのですが…以下に書く部分が間違っているようで。 #include <stdio.h> int main(void) { int i,j,a[9][9]; printf(" "); for(i=1; i<=9; i++) printf("%3d", i); printf("\n"); for(i=0; i<9; i++){ for(j=0; j<9; j++) a[i][j]=□ } for(i=0; i<9; i++){ printf("%3d", i+1); for(j=0; j<9; j++) printf("%3d", □); printf("\n"); } return 0; } 色々調べたり、少しずつ変えながら試しているのですが、できません。 どなたかわかるかたいらっしゃいますか。間違いがわかりません… 配列を使用しなくても出来ることは、わかるのですが、配列を使うバージョンでもできるようになりたいんです。 私がしようとおもっているのは、81個分の値を先に計算し、9×9の2次元配列に格納し、次に81個の配列要素の値を出力したいのですが、 間違いと方法がわかる方いらっしゃいませんか。

  • 【c++】2進数の表示が上手くいきません

    サブ関数を利用して、-15~15までの値を1刻みで10進数16進数8進数2進数を表示するプログラムを作っているのですが悩んでいます。 以下のようにやってるのですがデバッグが上手くいきません。 どこが悪いのでしょうか? #include<stdio.h> void sub(int a) { int i,wc; for(i=31;i>=0;i--) { wc=(a>>i)&0x01; if(i%4==3) printf(" "); printf("%1d",wc); } printf("\n"); return; } int main(void) { int wc,a,s,j,b; printf("10進数,16進数,8進数,2進数\n"); for(s=-15;s<=15;s++) { printf("%d %x %o \n",s,s,s); printf("%d\n",sub(a)); } return 0; } 初心者なのでありえない間違えがあるかと思います。 ご教授お願いしますm(_ _)m

  • C言語のポインタのプログラムについての質問です。

    C言語のポインタについて質問です。 nこの配列データaを受け取り、それらの値をもとに、2つのデータを引数で受け取って交換する関数void swap(double *a,*b)を用いることにより最終的に降順に並べ替えて出力したのち、それらを平均(average)と標準偏差(standard deviation)を引数で受け渡す関数 void calc_ave_stddev(int n,double a[],double *ave,double*stddev)を利用して出力されるプログラムを教えてほしいです。 main関数内での書式は printf("enter n:"); scanf("%d,&n"); for(i=0;i<n;i++){ printf("enter a[%d]:",i); scanf("%lf"&a[i]); } main関数での結果の出力は、 for(i=0;i<n;i++){ printf("a[%d]=%lf\n",a[i]); } printf("ave=%lf stddev=%lf\n",ave,stddev); です。