1 / 10

# ??????????? ?????? ? - PowerPoint PPT Presentation

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about '??????????? ?????? ?' - morrison

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

2014年1月14日

[前回の課題１解答] 連続一致文字数の最大値と，最大値の位置（i）を出力しなさい

Page 2

#include<stdio.h>

intDat[16]={0,1,0,1,2,0,2,0,0,1,2,0,1,2,1,-1};

intIcchicho(int n){ // n 番目と8番目から連続一致する長さを返す

inti, count=0;

for(i=0; i<8; i++){

if(Dat[i+n] == Dat[i+8]) count++;

else break;

}

return(count);

}

void main(void){

int ans, i, max, pos;

max=0; pos=0;

for(i=0; i<8; i++){

ans= Icchicho(i);

if(ans> max){

max = ans;

pos= i;

}

}

printf("pos:%d, max:%d\n",pos,max);

}

[用紙の課題１] 以下のプログラムの出力を書きなさい．

Page 3

#include<stdio.h>

intDat[16]={0,1,2,0,2,0,0,1,2,0,0,2,1,-1};

intIcchicho(int n){ // n 番目と8番目から連続一致する長さを返す

inti, count=0;

for(i=0; i<8; i++){

if(Dat[i+n] == Dat[i+8]) count++;

else break;

}

return(count);

}

void main(void){

int ans, i, max, pos;

max=0; pos=0;

for(i=0; i<8; i++){

ans= Icchicho(i);

if(ans> max){

max = ans;

pos= i;

}

printf(“i:%d, pos:%d, max:%d\n",i, pos,max);

}

}

[前回の課題２解答] Shift関数を用いて「最大連続一致文字数＋１」だけ配列Datを Shift させなさい．

Page 4

#include<stdio.h>

intDat[16]={0,1,0,1,2,0,2,0,0,1,2,0,1,2,1,-1};

intIcchicho(int n){・・同じ・・　　}

void Shift(int n){

int i;

for(i=0; i<16-n; i++) Dat[i] = Dat[i+n];

}

void main(void){

int ans, i, max, pos;

max=0; pos=0;

for(i=0; i<8; i++){ ・・同じ・・　}

printf("pos:%d, max:%d\n",pos,max);

Shift(max+1);

}

[用紙の課題２]以下のプログラムの出力を書きなさい．

Page 5

#include<stdio.h>

intDat[16]={0,1,2,0,2,0,0,1,2,0,0,2,1,-1};

intIcchicho(int n){・・同じ・・　　}

void Shift(int n){

int i;

for(i=0; i<16-n; i++) Dat[i] = Dat[i+n];

}

void main(void){

int ans, i, max, pos;

max=0; pos=0;

for(i=0; i<8; i++){ ・・同じ・・　}

Shift(max+1);

for(i=0;i<16;i++) printf("%d ",Dat[i]);

}

[前回の課題３解答] （最大連続一致位置，最大連続一致数，一致しなかった数値）」を画面に出力すること．一致しなかった数値が「-1」の場合，出力して終了とすること．

#include<stdio.h>

intDat[16]={0,1,0,1,2,0,2,0,0,1,2,0,1,2,1,-1};

intIcchicho(int n){・・同じ・・　　}

void Shift(int n){・・同じ・・}

void main(void){

intans, i, max, pos;

while(1){

max=0; pos=0;

for(i=0; i<8; i++){・・同じ・・}

printf("(%d,%d,%d)\n",pos,max,Dat[8+max]);

if(Dat[8+max]==-1) break;

Shift(max+1);

}

}

[用紙の課題３]以下のプログラムの出力を書きなさい．

#include<stdio.h>

intDat[16]={0,1,2,0,2,0,0,1,2,0,0,2,1,-1};

intIcchicho(int n){・・同じ・・　　}

void Shift(int n){・・同じ・・}

void main(void){

intans, i, max, pos;

while(1){

max=0; pos=0;

for(i=0; i<8; i++){・・同じ・・}

printf("(%d,%d,%d)\n",pos,max,Dat[8+max]);

if(Dat[8+max]==-1) break;

Shift(max+1);

}

}

[プログラミング課題１]以下のプログラムを作成しなさい

Page 8

#include<stdio.h>

intIcchicho(int n){ // n 番目と8番目から連続一致する長さを返す

inti, count=0;

else break;

}

return(count);

}

void main(void){

int ans, i, max, pos;

max=0; pos=0;

ans= Icchicho(i);

if(ans> max){

max = ans;

pos= i;

}

printf("i:%d, pos:%d, max:%d\n",i, pos,max);

}

}

[プログラミング課題２]以下のプログラムを作成しなさい

Page 9

#include<stdio.h>

intIcchicho(int n){・・同じ・・　　}

void Shift(int n){

int i;

for(i=0; i<2*MADO-n; i++) Dat[i] = Dat[i+n];

}

void main(void){

int ans, i, max, pos;

max=0; pos=0;

printf("pos:%d, max:%d\n",pos,max);

Shift(max+1);

}

[プログラミング課題３]以下のプログラムを作成しなさい

#include<stdio.h>

intIcchicho(int n){・・同じ・・　　}

void Shift(int n){・・同じ・・}

void main(void){

intans, i, max, pos;

while(1){

max=0; pos=0;