生半可な ど素人の パソコン資格 :)

趣味で、資格学修を しています。 自分に 出来ることを 増やしていきたいです ^^

よろしくお願いします。(^^)

みなさん こんにちは、

fuku です。


今回は、

トレースについて、

気づいた事を 書きます。

 ( 忘備録 ;)


みなさんは、もう、

やられているかも 知れませんが、

変数と 変化する値を 表にしたら、

スムーズに 行くとわかりました。


今までは、

トレースしながら、

その都度、変数を 書いていたので、

緊張してガチガチに なっていましたので。;)


ご参考になれば 幸いです。:)

こんにちは、

fuku です。みなさん

いかが お過ごしですか。


熊本の地震が 早く落ち着きます ように

 全ての人が、よりうまくいきます ように

亡くなられた方の、ご冥福をお祈りします。


極選分析 基本情報技術者
 予想問題集

より、
p666
ラン レングス法

以下、参考 コードです。




#include <stdio.h>
#include <string.h>

int runLength(const char *, char *, int *);

int main(){

const char srcStr[15] = {'A','A','A','A','B','B','B','C','C','D','D','D','D','D','\0'};
char dstData[15];
int dstData_n[15];
printf("%s\n", srcStr);
runLength(srcStr, dstData, dstData_n);

}

int runLength(const char *srcStr, char *dstData, int *dstData_n){
   int i;
   int j;
   int k;
   int size;
   char count;
   char moji;

   i=0;
   j=0;
   size = strlen(srcStr);
   count = '0';
   moji = srcStr[0];

   while(i <= size){
     if(moji != srcStr[i]){
        dstData[j] = moji;
        dstData[j+1] = count;
        j += 2;
       count = '0';
       moji = srcStr[i];}
else{
   i++;
   count++;}

  }
   dstData[j] = '\0';
printf("%s\n", dstData);

}



こんにちは。

fuku です、皆さん いかが

お過ごしでしょうか。

熊本の 地震は 大変ですね。

一早い 復旧・復興を お祈りしています。

亡くなられた方たちの ご冥福を お祈りします。


今回の 記事なのですが、

例によって、極選 予想問題集より、

お伝えします。


小町算
 1, 2, 3, 4, 5, 6, 7, 8, 9
までの 数字を1個づつ 使って、
+, - で 合計を 100にします。
その 式を 出力します。

という、PGです。^^

以下に、作成した コードを

載せておきます。

ご参考になれば、幸いです :)



#include <stdio.h>
#include <string.h>

int main(){

int i;
int n;
int s;
int sign;
int ope[10];

for(i = 1; i<= 9; i++){
ope[i] = 0;}

while(ope[1] < 3){
  s = 0;
  n = 0;
  sign = 1;

    for(i = 1; i <= 9; i++){
      if(ope[i] == 0){
        n = n*10 + i;}
        else{
         s = s+ sign*n;
         n = i;
      if(ope[i] == 2){
         sign = 1;}
         else{
          sign = -1;}
        }
     }
 




s = s + sign*n;

 if(s == 100){
       for(i=1; i <= 9; i++){
          if(ope[i] == 1){
             printf("%s", "-");}
             else {
                  if(ope[i] == 2){
                       printf("%s", "+");}
                      }
     printf("%d", i);
                                        }
    printf("%s\n", "");
                      }



i = 9;
ope[i] = ope[i] + 1;
   while((i > 1) && (ope[i] == 3)){
       ope[i] = 0;
       i = i - 1;
       ope[i] = ope[i] + 1;}
   }
 }

↑このページのトップヘ