C.K PRIVATE PICマイコン,

WEB・PIC

C.K PRIVATE PICマイコン

C.K PRIVATE /  2013年・PICマイコンのページです
PICマイコンの基礎やプログラムの紹介です

2013/5/25  blockfile

#include<stdio.h>

//(void) blockfile_1(void)
(void) blockfile_2(void)

int main(void)
{
#if 0
blockfile_1();

#else
blockfile_2();

#endif
}

 

 

-------------------------------------------------------------------

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

typedef struct person {
char name[20];
int age;
} Person;

void blockfile_2(void)
{
FILE *fp;
Person dt[5] = {
{"鈴木一郎", 22},
{"田中一郎", 33},
{"佐藤一郎", 46}
};
Person meibo[10];
int i;

#if 0
for(i = 3; i < 5; i++) {
printf("名前:"); scanf("%s", dt[i].name);
printf("年齢:"); scanf("%d", &dt[i].age);
}
#else
strcpy(dt[3].name"伊藤四郎");
dt[3].age =67;
strcpy(dt[4].name "野口五郎");
dt[4].age = 58;
#endif
if((fp = fopen("\\dos\\tst.txt", "w")) == NULL) exit(1);
fwrite(dt, sizeof(Person), 5, fp);
fclose(fp);

if((fp = fopen("\\dos\\tst.txt", "r")) == NULL) exit(1);
printf("戻り = %d\n", fread(meibo, sizeof(Person), 5, fp) );
for(i = 0; i < 5; i++) {
printf("i=%d %s %d\n"
, i, meibo[i].name, meibo[i].age);
}

printf("戻り = %d\n", fread(meibo, sizeof(Person), 5, fp) );

fclose(fp);

}

 


2013/5/18  typedef struct

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

#define RECSIZE 28L

typedef struct person{
char name[20];
int height;
int weight;

}person;

void data_set(person *d,char *name,int hgt, int wgt);
void data_write(int recordno,person d);
void data_read(int recordno,person *d);
void data_disp(person d);

FILE *fp;
char recordform[] = "%20s%4d%4d";

int main(void)
{
person dt;
int nbr;

fp = fopen("meibo.txt","wb");
if(fp == NULL)exit(1);
data_set(&dt,"鈴木一郎",160,66);data_write(0,dt);
data_set(&dt,"鈴木次郎",170,77);data_write(1,dt);
data_set(&dt,"鈴木三郎",180,88);data_write(2,dt);
fclose(fp);

fp = fopen("meibo.txt","rb+");
if (fp == NULL) exit(1);

puts("ーーーー全データ表示");
for(nbr = 0; nbr<=2; nbr++){
data_read(nbr,&dt);
data_disp(dt);
}
puts("ーーーー1番のデータだけ表示");
data_rand(1,&dt);
data_disp(dt);

puts("ーーーー1番のデータ書き換え");
data_set(&dt,"田中晴夫",200,100); data_write(1,dt);

puts("--------全データ表示");

for(nbr = 0; nbr <=2; nbr++){
data_read(nbr,&dt);
data_disp(dt);

}
return 0;

}

void data_set(person *d,char *name,int hgt, int wgt)
{

strcpy(b->name,name);
d->height = hgt;
d->weight = wgt;
}

void data_write(int recordno,person d)
{

fseek(fp, recordno * RECSIZE, SEEK_SET);
fprintf(fp,recordform,d.name,d.height,d.weight);
}

void data_read(int recordno,person *d)
{
fseek(fp,recordno * RECSIZE, SEEK_SET);
fscanf(fp,recordform, &d->name,&d->height,&d->weight);

}

void data_disp(person d)
{
printf("%-20s%4d%4d\n",d.name,d.height,d.weight);
}


2013/5/11  typedef

#include<stdio.h>
#include<stdlib.h>

typedef struct person{
char
}
int main(void)
{

return 0;

}


2013/5/4  #else

#include<stdio.h>

void sample18_01(void);

int main(void)
{
sample18_01();

return 0;
}

 

 

 

 

#include<stdio.h>
#include<stdlib.h>

#define SEEK_SET 0
#define SEEK_CUR 1
#define SEEK_END 2

typedef struct person {
char name[20];
int age;
} Person;

void sample18_01(void)
{
Person dt[5] = {
{"鈴木一郎", 22},
{"田中二郎", 33},
{"佐藤三郎", 46},
{"伊藤四郎", 67},
{"野口五郎", 58}
};
FILE *fp;
Person One;
int i;

if((fp = fopen("\\dos\\d18_7.txt", "wb")) == NULL)
exit(1);
fwrite(dt, sizeof(Person), 5, fp);
fclose(fp);

//ファイルのシーケンシャル処理、データの読み込み
if((fp = fopen("\\dos\\d18_7.txt", "rb")) == NULL)
exit(1);
fread(dt, sizeof(Person), 5, fp);

//ファイルの読み込み(乱数読み出し)ランダム処理
//田中二郎の情報を読み取り画面に表示、
//現在読み取り位置は終了位置に存在している
printf("佐藤郎の情報を読み取り画面に表示¥n");
fseek(fp,24,SEEK_SET);
fread(&One,sizeof(Person),1,fp);
printf("%s %d\n");
#if 0
if((fp = fopen("\\dos\\d18_7.txt", "rb+")) == NULL)
exit(1);
fseek(fp, sizeof(Person) * 2, SEEC_CUR);
fread(&One,sizeof(Person),1,fp);
//printf("%s %d , One.name, One.age");
fseek(fp,0,SEEK_END);
fwrite(&One,sizeof(Person),1,fp);

fclose(fp);

printf("\n");
rewind(fp);
while(feof(fp) == 0{
if(fread(&One,sizeof(Person),1,fp);
printf("%s %d\n ", One.name,One.age);
#else
// while(fread(&One,sizeof(Person),1,fp)==1{
// printf("%s %d \n",One.name,One.age);
#endif
}

fclose(fp);
}

2013/4/27  endif

#include<stdio.h>

void blockfile_1(void);

int main(void)
{

#if 1
blockfile_1();
#endif

}

2013/4/20  fscanf

#include<stdio.h>

int main(void)
{
#define LF 0x0a
#define DATA_SIZE 64

int c , n, d ;
FILE *fi, *fo;
char data[64] ,data1[64],data2[64],data3[64];
//ファイルオープン
fi = fopen("\\dos\\input.txt","r");
fo = fopen("\\dos\\output.txt","w");

scanf("%d:%d", &c,&d);
printf
#if 0
for(n = 0; n < 15; n++)
{
c = fgetc(fi);
fputc(c,fo);
}

#else//putc一文字
while(( c = fgetc(fi)) != LF)
fputc(c,fo);
fputc(c,fo);
#endif
//puts
fgets(data,DATA_SIZE,fi);
fputs(data,fo);

fscanf(fi ,"%s %s %s" ,data1,data2,data3);
fprintf(fo, "%s@@@%s###%s",data1,data2,data3);

/* fscanf(fi ,c = "%d d = %s\n",c,d,data1);
fprintf(c = %d %s \n",data,data1);*/


fclose(fi);
fclose(fo);
return 0;
}

2013/4/13  エラー

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

int main(void)
{
FILE *fin,*fout;//ストリームファイルポインタ
int ch;
char inname[128];
char outname[128];

printf("入力ファイル名:");
gets(inname);
printf("出力ファイル名:");
gets(outname);

if((fin = fopen (inname ,"rb")) == NULL){
perror("異常発生「訓練」");
printf("error No:%d input file open error\n",errno);
printf("%s\n",strerror(errno));
exit(1);
}

if((fout = fopen(outname,"wb"))==NULL){
printf("output file open error\n");
exit(1);
}
while((ch = fgetc(fin)) !=EOF){
fputc(ch,fout);
}
fclose(fin);
fclose(fout);
return 0;
}

2013/4/6  FILE2

#include<stdio.h>
int main(void)
{
FILE *fp;
char buff[64] = "abcdef";
int lineNo;

fp = fopen("\\dos\\test1.txt","r");
// scanf("%s",buff);
// fputs(buff,fp);

while (fgets(buff,64,fp) != NULL){
printf("%s\n",buff);
}
// rewind(fp);//読み書き位置をファイル先頭に移動

fclose(fp);
fp = fopen("\\dos\\test1.txt","r");
for (lineNo = 1; fgets(buff,64,fp) != NULL; lineNo++)
{
printf("%d行目%s",lineNo,buff);
}

fclose(fp);

#if 0
fputs(buff, stdout);
fgets(buff,6,stdin);
fputs(buff, stdout);
#endif

return 0;
}

2013/3/30  FILE

#include<stdio.h>

/*int main(void)
{
FILE *fp;
int c;
//例1:テキストモードでオーポンして1文字づつ読み込む
fp = fopen("\\temp\\smp.txt","r");

while((c = fgetc(fp))!= EOF)
printf(" %02X ",c);
fclose(fp);

return 0;
}*/

int main(void)
{
FILE *fp;
int c;

while((c = fgetc((fp))!= EOF){

printf(" %02X ",c);
printf("\n");
fclose(fp);
//例1:バイナリモードでオーポンして1文字づつ読み込む
fp = fopen("\\temp\\smp.txt","r");
printf("指定したsmp.txtファイルが開けませんでした\n");
return 1;

}

}


2013/3/23  strcpy

#include<stdio.h>

int main(void)
{
char ch ,ss[80];
short sh;
int id,n,n1,n2;
long lng;
double db;
long double ldb;

id = 4080;
printf("o[%o]\n",id);
printf("d[%d]\n",id);
printf("i[%i]\n",id);
printf("x[%x]\n",id);
printf("X[%X]\n",id);

id = -5;
printf("u[%u]\n",id);

ch = 'a'; id = 'b';
printf("c[%c]\n",ch);
printf("c[%c]\n",id);

strcpy(ss, "abcde");
printf("s[%s]\n",ss);

db = 123.456;
printf("f[%f]\n",db);
printf("e[%e]\n",db);
printf("E[%E]\n",db);

db = 0.000345;
printf("g[%g]\n",db);
db = 0.0000345;
printf("g[%g]\n",db);
printf("G[%G]\n",db);
db = 123456;
printf("g[%g]\n",db);
db = 12345678.9;
printf("g[%g]\n",db);

printf("p[%p]\n",&id);

printf("ABCD%nEF\n",&n);
printf("n=%d\n",n);

strcpy(ss , "xyz");
id = 22;
printf("A%sB%dC%nD\n",ss,id,&n);
printf("n=%d\n",n);

printf("123%%456\n");

id = 1234; sh = 5678;
printf("d[%d]\n",id);
printf("hd[%hd]\n",sh);

lng = 87654321;
printf("ld[%ld]\n",lng);

ldg = 2.345678;
printf("Lf[%Lf]\n",ldb);

id = 123; n = 10;
printf("ld[%ld]\n",id);
printf("d[%d]\n",id);
printf("8d[%8d]\n",id);
printf("*d[%*d]\n",n,id);

printf(".10d[%.10d]\n",id);

db = 12.34567; n1 10; n2 = 3;
printf("f [%f]\n",db);
printf("12f[%12f]\n",db);
printf("12.2f[%12.2f]\n",db);
printf("12.0f[%12.0f]\n",db);
printf("12.f[%12.f]\n",db);

printf("*.*[%*.*]\n",n1,n2,db);

strcpy(ss, "abcdefghij");
printf(".5s[%.5s]\n",ss);

id = 123;
printf("d [%d]\n",id);
printf("-8d[%-8d]\n",id);
printf("08d[%08d]\n",id);
printf("+d[%+d]\n",id);
printf("_d[% d]\n",id);
printf("#o[%#o]\n",-246);
printf("#x[%#x]\n",id);

 

 

 

 

 

/********************************/
printf("00000000011111111112\n");
printf("12345678901234567890\n");

printf("%10d\n%10d\n" , 12345,22222);
printf("%-10d\n%-10d\n" ,12345,22222);
printf("\n");

printf("%5.2f\n", 123.45678);

return 0;

}


2013/3/16  ディファイン4

#include<stdio.h>

#define MEMSIZE 2
#define DEBUG 1

#if MEMSIZE == 1
char data[1024];
#elif MEMSIZE == 2
char data[2048];
#else
char data[4096];
#endif

int main(void)
{

char buff[10] = {0};

int i;
#if 0
buff[0] = 10; /*配列buff要素番号0*/
buff[1] = 20; /*配列buff要素番号1*/
#endif

for(i=0;i < 10; i++){
buff[i] = i +1;
#if DEBUG
printf("%d [%d]\n",i,buff[i]);
#endif
}

printf("%d\n",sizeof(buff));
printf("data配列のバイト数:%d\n",sizeof(data));

return 0;

 

}


2013/3/9  ディファイン3

#include<stdio.h>

#define SIZE_MAX 1024
#define mul(a , b) ((a) * (b))//引数の#define

#define putd(dt) printf("%d\n",dt) //関数も使える関数形式マクロ

#define add(a,b) ((a))+((b))//足し算
#define sub(a,b,c) ((a))-(b)-((c))
#define dataout(dt) printf(#dt "=%d\n", dt)

int main(void)
{
int x;
x = mul(30 , 50); //x = ((30) * (50));
// printf("x = %d\n",x);
dataout(x);

// x =((a))*((b));
x = add(10,20);
printf("x = %d\n",x);

x = sub(400,200,100);
printf("x = %d\n",x);//x = 400 -200-100

printf("__LINE__%d\n",__LINE__);
printf("__FILE__%s\n",__FILE__);
printf("__DATE__%s\n",__DATE__);
printf("__TIME__%s\n",__TIME__);


putd(123);
// printf("%d\n,123");

return 0;
}

2013/3/2  ディファイン2

#include<stdio.h>

#define SIZE_MAX 1024
#define mul(a , b) ((a) * (b))//引数の#define

#define putd(dt) printf("%d\n",dt) //関数も使える関数形式マクロ

#define add(a,b) ((a))+((b))//足し算
#define sub(a,b,c) ((a))-(b)-((c))
#define dataout(dt) printf(#dt "=%d\n", dt)

int main(void)
{
int x;
x = mul(30 , 50); //x = ((30) * (50));
// printf("x = %d\n",x);
dataout(x);

// x =((a))*((b));
x = add(10,20);
printf("x = %d\n",x);

x = sub(400,200,100);
printf("x = %d\n",x);//x = 400 -200-100

printf("__LINE__%d\n",__LINE__);
printf("__FILE__%s\n",__FILE__);
printf("__DATE__%s\n",__DATE__);
printf("__TIME__%s\n",__TIME__);


putd(123);
// printf("%d\n,123");

return 0;
}

2013/2/23  ディファイン

#include<stdio.h>
#include<stdlib.h>

#define TRUE 1
#define FALSE 0
#define BASE 256
#define SIZE 60

int main(void)
{
int i,j,wk,dt[SIZE];

for(i = 0;i<SIZE; i++)
dt[i] = rand();

for(i=0; i<SIZE-1; i++){
for(j =i+1; j<SIZE;j++){
if(dt[i] > dt[j]){
wk = dt[i];dt[i] = dt[j];dt[j]=wk;
}
}
}
for(i=0;i<SIZE;i++)
printf("%d:%d ",i,dt[i]);
printf("\n");

/* int a;
for(a=0; a < 5;a++){
if (a==TRUE){
printf("a = %d TRUE [%d]\n",a,TRUE);
}else{
printf("a = %d\n",a);

}
}
printf("SIZE * 2 = %d\n" ,SIZE * 2 );*/
return 0;
}

2013/2/16  構造体と共用体

#include<stdio.h>

/*struct meibo{
char kaneko;
char suzuki;
char kato;
};*/

union regs{
unsigned char al;
unsigned char ah;//又配列の場合は、その型を足していく
unsigned short ax;//共用体だから一番大きい型をしよう、この場合は2バイト
};

struct hregs{
unsigned char al;
unsigned char ah;//構造体だから+して2バイトの領域
};

union regs2{
struct hregs h;
unsigned short ax;
};

struct st_hilo{
unsigned char lo;
unsigned char hi;
};

typedef union u_hilo{
struct st_hilo hl;
unsigned short word;
}Uhl;

int main(void)
{
//struct meibo mei[4];
union regs reg1;
union regs2 reg2;
unsigned short s1 = 0x1234,s2;
Uhl hl1,hl2;

reg1.ax = 0x1234;
printf("ax = %x\n",reg1.ax);
printf("ah = %x\n",reg1.ah);
printf("al = %x\n",reg1.al);

reg2.ax = 0x1234;
printf("ax = %x\n",reg2.ax);
printf("ah = %x\n",reg2.h.ah);
printf("al = %x\n",reg2.h.al);

//s2 = s1から四則演算で0x3412に入れ替えてs2を代入
s2 = s1 / 0x100;
s2 +=(s1 % 0x100) * 0x100;

printf("s1 = %x\n",s1);
printf("s2 = %x\n",s2);

hl1.word = 0x1234;
hl2.hl.hi = hl1.hl.lo;

printf("hl1.word = %x\n",hl1.word);
printf("hl2.word = %x\n",hl2.word);

return 0;

}

2013/2/9   共用体2

#include<stdio.h>

union usmp{
int it;
short st;
char ct;
};

int main ()
{
union usmp u;
union usmp *pu = &u;

u.it = 0x12345678;
printf ("it = %x\n",u.it);
printf ("st = %x\n",u.st);
printf ("ct = %x\n",u.ct);

u.ct = 0x53;
printf ("it = %x\n",u.it);
printf ("it = %x\n",u.it);
printf ("st = %x\n",u.st);
printf ("ct = %x\n",u.ct);

pu->st = u.st = 0x2468;
printf ("it = %x\n",u.it);
printf ("st = %x\n",u.st);
printf ("ct = %x\n",u.ct);

return 0;
}


2013/2/2   共用体

#include<stdio.h>

struct d_tag{
char Lo;
char Hi;
};
union uni_tag{
short s;
struct d_tag d;
};
int main(void)
{
union uni_tag uni;

uni.s = 0x1234;

// printf("%2x%2x\n",uni.d.Lo,uni.d.Hi );
printf("%x\n",uni);
return 0;
}


2013/1/26   構造体

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

typedef struct person{

char name[30];
int age;
struct person *next;
}person;

int main(void)
{
person dmy = {"",0,NULL};
person *start = &dmy;
person *wkdtp;
person *ip;
char name[30],age_ss[10];

while(1){
printf("名前="); gets(name);
if(strcmp(name,"")==0)break;
printf("年齢=");
gets(age_ss);

wkdtp = (person *)malloc(sizeof(person));
if(wkdtp == NULL){
printf("メモリが確保できません・\n");
exit(1);
}

strcpy(wkdtp->name,name);
wkdtp->age = atoi(age_ss);

for(ip=start; ip->next !=NULL;ip = ip->next){
if(wkdtp->age < ip->next->age){
wkdtp->next = ip->next;
ip->next = wkdtp;
break;

}
}
if(ip->next == NULL){
ip->next = wkdtp;
wkdtp->next = NULL;
}
}
for (ip =start->next;ip !=NULL; ip = ip->next){
printf("%s %d\n",ip->name,ip->age);
}
return 0;
}


2013/1/19   問題いろいろ

#include<stdio.h>

int main(void)

{
int buff[10];
int i=0;
int sum ,n;
/*
問1
数値4から20の和を求めるプログラムを追加
*/
sum = 0;
n = 1;
for( n=4; n<=20; ++n)
{
sum += n;
}
printf("数値4から%d和を求めるプログラム\n",sum);

/*
問2
数値5から30の奇数の和を求めるプログラム
*/
sum = 0;
n = 5;
for( n=5; n<=30; n++)
{

sum += n;
++n;
}
printf("数値5から%d和を求めるプログラム\n",sum);

/*
問3
数値1から30で5で割り切れる値の和を求めるプログラムを追加
*/
sum = 0;
n = 5;
for( n=5; n<=30; n+=5)
{

sum += n;

}
printf("数値5から%d和を求めるプログラム\n",sum);

/*問4
int型で要素数10個の1次元配列buffを宣言して下記に示す要素番号に設定内容の値を設定
するPGを追加
要素番号[0][1][2][3][4][5][6][7][8][9]
設定番号 0 5 10 15 20 25 30 35 40 45
*/

 

for(n=0; n<10; n++)
{
buff[n]= n* 5;

}
printf("要素番号[0][1][2] [3] [4] [5] [6] [7] [8] [9]\n");
printf("設定番号[%d][%d][%d][%d][%d][%d][%d][%d][%d][%d]\n",
buff[0],buff[1],buff[2],buff[3],buff[4],buff[5],buff[6],buff[7],buff[8],buff[9]);

/*問5
問4で設定した配列の内容を下記のように表示するプログラムを追加
要素番号[0] = 0
要素番号[1] = 5



要素番号[9] = 45
*/
for(n=0; n<10; n++)
{
buff[n]= n* 5;
printf("要素番号[%d] = %d\n",buff[n],n);

}


/**/
return 0;
}

2013/1/12    簡単な関数

#include <stdio.h>

int main(void)
{
int data[5] = {123, 45, 325, 1982, 36};
int data2[5];
int a;
int sum,i;

//数値1から10の奇数の和を計算
//例1:通常のwhile文

sum = 0;
i = 1;
while(i <= 10)
{
sum += i;
i++; //単項式になるので++iでも可能
}
printf("和= %d\n",sum);

//例2:通常for文
sum = 0;

for(i = 1; i <=10; i++)
{
sum += i;
}
printf("for文 和 =%d\n", sum);
/*
i= 0;

puts("forの処理順序\n");
//for ( 式1  :    式2  :  式3  :
for (puts("式1");printf("式2\n");puts("式3\n"))
{
puts("文");
if(++i >=5)
break;
}
*/
// 例3:for文の式1がない,他の値から計算したいとき
/*
sum = 0;
i=1;
for(; i <=10; i++)
{
sum += i;
}
printf("for文 和 =%d\n", sum);
/*
i= 0;*/

/* 例4:for文の式2がない,
sum = 0;
for(i = 1; ; i++)
{
sum += i;
if( i>=10)
break;
}
printf("for文 和 =%d\n", sum);*/

// 例5:for文の式3がない,
/* sum = 0;
for(i = 1; i<=10; )
{
sum += i++;
// i++;

}
printf("for文 和 =%d\n", sum);*/

// 例6:for文の式2のみ,
sum = 0;
i=1;
for( ; i<=10; )
{
sum += i;
i++;

}
printf("for文 和 =%d\n", sum);

// copy process

a = 0;
while(a < 5) {
data2[a] = data[a];
a++;
}

// display process
a = 0;
while(a < 5) {
printf("data2[%d] = %d\n", a, data2[a]);
a++;
}

// copy process
// ①   ②  ③
for(a = 0; a < 5; a++)
data2[a] = data[a]; // ④
/*
①が処理される
②で条件見る
④②で真なら処理
③を処理
②で条件を見る
④②で真なら処理
③を処理
②・④・③を偽になるまで実施
*/

// display process

return 0;
}


2013/1/5    入力・出力

#include<stdio.h>

int main(void)
{

int a,b;
printf("変数aとbに値を入力:\n");
scanf("%d%d",&a,&b);
//形式1
printf("形式1\n");
if(a<b)
{
printf("変数a[%d]は変数b[%d]より小さい\n",a,b);

}
//形式2
printf("形式2\n");
if(a<b)
{
printf("変数aは[%d]変数bは[%d]より小さい\n",a,b);
}else{
printf("変数a[%d]は変数b[%d]より大きい\n",a,b);

}
//形式3
printf("形式3\n");
if(a<10)
{
printf("変数a[%d]は10より小さい\n",a);
}else if(a < 20){
printf("変数a[%d]は20より小さい\n",a);
}else if(a < 30){
printf("変数a[%d]は30より小さい\n",a);
}else{
printf("変数a[%d]は、それ以上\n",a);
}
return 0;
}

2013/1/1    時間

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

typedef struct bit_date{
unsigned long week : 3;
unsigned long day : 5;
unsigned long month: 4;
unsigned long year : 12;
}mydate;

typedef struct bit_time{
unsigned long sec : 6;
unsigned long Minit : 6;
unsigned long Hour : 5;
}mytime;

int main(void)
{
mydate dt;
mytime tm;
int d;
int i=0;

char str[8] = {0};
char *str_w[7]= {"日","月","火","水","木","金","土"};

printf("年:"); scanf("%d",&d);
dt.year = d;
printf("月:"); scanf("%d",&d);
dt.month = d;
printf("日:"); scanf("%d",&d);
dt.day = d;
printf("時:"); scanf("%d",&d);
tm.Hour = d;
printf("分:"); scanf("%d",&d);
tm.Minit = d;
printf("秒:"); scanf("%d",&d);
tm.sec = d;

for(dt.week=0; strncmp(str,str_w[dt.week],2) !=0;dt.week++);
printf("%d年%2d月%2d日 %2d時%2d分%2d秒 (%s 曜日)\n",
dt.year,dt.month,dt.month,dt.day,
tm.Hour,tm.Minit,tm.sec,str_w[dt.week]);
return 0;
}