キャッシュ

IT関連教材の cache です。旧 URL のまま随時変更しています。

反復

2013-11-23 19:15:24 | 教材

 

#include stdio.h>
int main( ){
    char s[40], c; int n, k=0;
    printf("n = "); scanf("%d", &n);
    while(n > 0){
        s[k] = n % 2; /*あ*/
; k++;
    }
    while(k > 0){
        k--; printf("%d", s[k]);
    }
    printf("\n");
    fflush(stdin); getchar( );
    return 0;
}

キー入力された自然数を2進表示する左記のプログラムを完成せよ。

 

 

 

☆ 「s1[i] = s[k-i] + '0';」 とすると 「printf("%s\n", s1);
10進固定小数点でキー入力された正の実数の2進表示は


 

#include stdio.h>
int main( ){
    int m[10], k, n;
    double a, v, y; 
    for(y = k = 0; k < 10; k++){
        printf("m[%d] = ", k);
        scanf("%d", /*か*/);
        y += m[k];
        if(m[k] == 0){break;}
    }
    if(k == 0){return 0;}
    /*き*/; a = y / n;
    for(y = k = 0; k < n; k++){
        y += /*く*/*(m[k] - a);
    }
    v = y / n;
    printf("%f, %f\n", a, v);
    fflush(stdin); getchar( );
    return 0;
}

キー入力された整数の平均値 a と分散 v を表示する左記のプログラムを完成せよ。

 

 

 

☆ 空白文字で区切って1行に複数のデータを入力できる (書式付入力)。
while 文による等価なプログラムは
一つの for 文で平均値と分散を求めるプログラムは


 

#include stdio.h>
int main( ){
    char s[80]="Hello, world.";
    int n=0;
    while(s[n] != 0){n++;}
    if(n > 75){return 0;}
    for(/*さ*/){
        s[k+4] = s[k];
    }
    for(k = 0; k < 4; k++){
        s[k] = /*し*/;
    }
    printf("%s\n", s);

    fflush(stdin); getchar( );
    return 0;
}

s[0] から始まる文字列の先頭に4個のスペースを挿入する左記のプログラムを完成せよ。

 

☆ 領域が重なるとき、コピーする順序に注意。
char s[80]="     Hello, world.";」と初期化されているとき、「'H'」より前のスペースを削除するプログラムは


 

#include stdio.h>
int main( ){
    int m[10], n1, n2, n3, k;
    for(k = 0; k < 10; k++){
        printf("m[%d] = ", k);
        scanf("%d", &m[k]);
    }
    /*た*/
    for(k = 3; k < 10; k++){
        if(m[n1] >= m[k]){
            /*ち*/
        }else if(m[n2] >= m[k]){
            /*つ*/
        }else if(m[n3] >= m[k]){
            /*て*/
        }
    }
    if(m[n3] > m[n2] &&
       m[n2] > m[n1])
    {
        printf("ブービーは %d\n", n2);
    }else{
        printf("ブービーはなし\n");
    }

    fflush(stdin); getchar( );
    return 0;
}

配列 m[10] にあるデータで2番目に小さい値をもつ要素を求める左記のプログラムを完成せよ。

 

 

 

☆ 「if(m[n1] >= m[2]){n3 = n2; n2 = n1; n1 = k;}else if(m[n2] >= m[2]){□}else{}」
>=」を「>」に変えても同じなぜ


 

#include stdio.h>
int main( ){
    double x[10], y;
    int m[10], n, k;
    printf("y = "); scanf("%lf", &y);
    printf("n = "); scanf("%d", &n);
    if(n > 1000){return 0;}
    x[0] = y; m[0] = 1;
    for(k = 0; n > m[k]; k++){
        x[k+1] = x[k]*x[k];
        m[k+1] = m[k]*2;
    }
    /*な*/
    for(y = 1; n > 0; k--){
        if(n >= m[k]){
            y *= x[k]; /*に*/
        }
    }
    printf("y^n = %e\n", y);
    fflush(stdin); getchar( );
    return 0;
}

y のべき乗を求める左記のプログラムを完成せよ。

 

☆ y13 = y8 * y4 * y


 



コメントを投稿