C.K PRIVATE PICマイコン,

WEB・PIC

C.K PRIVATE PICマイコン

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

2012.12.29  構造体

#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;
}

2012.12.22  typedef

#include<stdio.h>
#include<string.h>
int day;
struct kakakutyp{
int teika;
int waribiki;
int yuutai;
};

struct tankatyp3{
int tanka3;
};

struct kakakutyp3{
int teika;
int waribiki;
int yuutai;

};

typedef struct syohin{
char name[30];
struct kakakutyp kakaku;
int zaiko;
}syohin;

typedef struct syohin3{
char name[30];
struct kakakutyp3 kakaku;
int zaiko;
}syohin3;

int chap12_08(void)
{
syohin syo;
syohin3 syo3;
syohin *sp = &syo;

strcpy (syo.name,"電卓BC386");
syo.kakaku.teika = 9000;
syo.kakaku.waribiki = 8000;
syo.kakaku.yuutai = 7200;
syo.zaiko = 36;

printf("品名  :%s\n",sp->name);
printf("定価価格:%d\n",sp->kakaku.teika);
printf("割引価格:%d\n",sp->kakaku.waribiki);
printf("優待価格:%d\n",sp->kakaku.yuutai);
printf("在庫個数:%d\n",sp->zaiko);

strcpy (syo3.name,"電卓BC386");
syo3.kakaku.teika = 9000;
syo3.kakaku.waribiki = 8000;
syo3.kakaku.yuutai = 7200;
syo3.zaiko = 36;

return 0;
}

2012.12.15  swap

#include<stdio.h>

typedef struct xydata{
int x,y;
}XYdata;

XYdata add_v(XYdata a, XYdata b);
XYdata *add_p(XYdata *a, XYdata *b);
void clear(XYdata *a);
void clear1(XYdata a);
void swap (XYdata *pa, XYdata *pb);

int chap12_07(void)
{
XYdata d1 = {10,20},d2 = {100,200},sum;
XYdata *pt;

sum = add_v(d1,d2);
printf("sum.x=%d sum.y=%d\n",sum.x ,sum.y);

pt = add_p(&d1 ,&d2);
printf("pt->x=%d pt->y=%d\n",pt->x, pt->y);

swap(&d1,&d2);
printf("スワップ後\n");
printf("d1.x=%d d1.y=%d\n",d1.x,d1.y);
printf("d2.x=%d d2.y=%d\n",d2.x,d2.y);

clear(&d1);
printf("d1.x=%d d1.y=%d\n",d1.x,d1.y);

clear1(d2);
printf("d2.x=%d d2.y=%d\n",d2.x,d2.y);
return 0;
}
XYdata add_v(XYdata a, XYdata b)
{
XYdata wk;

wk.x = a.x + b.x;
wk.y = a.y + b.y;
return wk;
}

XYdata *add_p(XYdata *a, XYdata *b)
{
static XYdata wk;

wk.x = a->x + b->x;
wk.y = a->y + b->y;
return &wk;
}
void clear(XYdata *a)
{
a ->x = 0;
a ->y = 0;
}
void clear1(XYdata a)
{
a.x= 0;
a.y= 0;
}

void swap (XYdata *pa, XYdata *pb)
{
XYdata tmp;
tmp = *pa;
*pa = *pb;
*pb = tmp;
}


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#include<stdio.h>
//int chap12_03(void);
//int list12_01(void);
//int sample12_01(void);

int chap12_05(void);
int chap12_06(void);
int chap12_07(void);
int chap12_08(void);

int main(void)
{
int n;

while(1){
printf("リスト番号12-?:");
scanf("%d",&n);
switch
(n){
// case 1:
// list12_01();
// break;
// case 2:
// sample12_01();
// break;
// case 3:
// chap12_03();
// break;
case 5:
chap12_05();
break;
case 6:
chap12_06();
break;
case 7:
chap12_07();
break;
case 8:
chap12_08();
break;
}
}
return 0;

}

2012.12.8  strcpy

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

struct seiseki{
char name[20];
int kokugo;
int sansuu;
};

int chap12_06(void)
{
int i;
struct seiseki sdt[10];
struct seiseki *sp;

sp = sdt;

strcpy(sp->name,"作業町域");
sp->kokugo = 0;
sp->sansuu = 0;

++sp;

strcpy(sp->name,"田中一郎");
sp->kokugo = 60;
sp->sansuu = 70;

strcpy(sdt[2].name,"伊藤二郎");
sdt[2].kokugo = 80;
sdt[2].sansuu = 90;

sdt[3]=sdt[2];
sdt[4].kokugo = -1;
for(i = 0; sdt[i].kokugo!=-1;i++){
printf(" %d: %s %d %d \n",i,sdt[i].name,sdt[i].kokugo,
sdt[i].sansuu);
}

sp = sdt;

while (sp->kokugo != -1){
printf(" %s %d %d \n",sp->name,sp->kokugo,sp->sansuu);
++sp;
}
return 0;

}


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#include<stdio.h>
//int chap12_03(void);
//int list12_01(void);
//int sample12_01(void);

int chap12_05(void);
int chap12_06(void);
int chap12_07(void);
int chap12_08(void);

int main(void)
{
int n;

while(1){
printf("リスト番号12-?:");
scanf("%d",&n);
switch
(n){
// case 1:
// list12_01();
// break;
// case 2:
// sample12_01();
// break;
// case 3:
// chap12_03();
// break;
case 5:
chap12_05();
break;
case 6:
chap12_06();
break;
case 7:
chap12_07();
break;
case 8:
chap12_08();
break;
}
}
return 0;

}

2012.12.8  strcpy

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

struct seiseki{
char name[20];
int kokugo;
int sansuu;
};

int chap12_06(void)
{
int i;
struct seiseki sdt[10];
struct seiseki *sp;

sp = sdt;

strcpy(sp->name,"作業町域");
sp->kokugo = 0;
sp->sansuu = 0;

++sp;

strcpy(sp->name,"田中一郎");
sp->kokugo = 60;
sp->sansuu = 70;

strcpy(sdt[2].name,"伊藤二郎");
sdt[2].kokugo = 80;
sdt[2].sansuu = 90;

sdt[3]=sdt[2];
sdt[4].kokugo = -1;
for(i = 0; sdt[i].kokugo!=-1;i++){
printf(" %d: %s %d %d \n",i,sdt[i].name,sdt[i].kokugo,
sdt[i].sansuu);
}

sp = sdt;

while (sp->kokugo != -1){
printf(" %s %d %d \n",sp->name,sp->kokugo,sp->sansuu);
++sp;
}
return 0;

}


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#include<stdio.h>
//int chap12_03(void);
//int list12_01(void);
//int sample12_01(void);

int chap12_05(void);
int chap12_06(void);
int chap12_07(void);
int chap12_08(void);

int main(void)
{
int n;

while(1){
printf("リスト番号12-?:");
scanf("%d",&n);
switch
(n){
// case 1:
// list12_01();
// break;
// case 2:
// sample12_01();
// break;
// case 3:
// chap12_03();
// break;
case 5:
chap12_05();
break;
case 6:
chap12_06();
break;
case 7:
chap12_07();
break;
case 8:
chap12_08();
break;
}
}
return 0;

}

2012.11.24  型 struct 2

#include<stdio.h>

struct seiseki ;
seiTyp tdt;

typedef struct seiseki1_1 seityp;

struct seiseeki_1 {
char name[20];
int kokugo;
int sansuu;
int rika;
int syakai;
}seya = ;

struct seiseki_1 dt1 = {"田中例1",98,71,85,90};
struct seiseki_1 d1[10] ;
struct seiseki_1 sdt;

typedef unsigned int UINT;
int chap12_03(void)
{
SeiTtp
int i;
UINT a;
char name[30];
for(i=0; i< 4; i++){
printf(" %s %d %d %d %d\n" ,d1[i].name,d1[i].kokugo,d1[i].sansuu,d1[i].rika,d1[i].syakai);

printf("名前:");
scanf("%s",name);
printf("国語:");
scanf("%d,&kokugo");

printf("名前:");
printf("国語:");
scanf("%d,&sdt.kokugo");
sdt.sansuu =0;
sdt.rika= 0;
sdt.syakai;

}
return 0;
}


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#include<stdio.h>
//int chap12_03(void);
//int list12_01(void);
//int sample12_01(void);

int chap12_05(void);
int chap12_06(void);
int chap12_07(void);
int chap12_08(void);

int main(void)
{
int n;

while(1){
printf("リスト番号12-?:");
scanf("%d",&n);
switch
(n){
// case 1:
// list12_01();
// break;
// case 2:
// sample12_01();
// break;
// case 3:
// chap12_03();
// break;
case 5:
chap12_05();
break;
case 6:
chap12_06();
break;
case 7:
chap12_07();
break;
case 8:
chap12_08();
break;
}
}
return 0;

}

2012.12.1  struct、ポインタ

#include<stdio.h>

struct seiseki{
char name[20];
int kokugo ;
int sansuu;
int rika;
int shakai;
};

struct meibo{
int no;
char name[30];
double ave;
}mei2;

struct seiseki seito1;
struct seiseki seito2;
struct seiseki sei[10];

int chap12_05(void)
{

struct seiseki *p1, *p2;
struct meibo *p3;

int a = 10, b = 5;
long g = 100;
int h[10] = {0};
int *pa, *pb;

if (a > b)
printf("aはbより大きい\n");
if(seito1.kokugo > seito2.kokugo)
printf("seito1が大きい\n");

a = b; //代入
seito1 = seito2; //一括代入
a = g; //型が異なる物は代入できない
// mei2 = seito2;


// (2)構造体のアドレスを取り出す
p1 = &seito1; //構造体変数のアドレスを代入
p2 = sei; //構造体配列のアドレスを代入
p3 = &mei2; //構造体

pa = &a; //変数aのアドレスを代入
pb = h; //配列hのアドレスを代入

return 0;
}


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#include<stdio.h>
//int chap12_03(void);
//int list12_01(void);
//int sample12_01(void);

int chap12_05(void);
int chap12_06(void);
int chap12_07(void);
int chap12_08(void);

int main(void)
{
int n;

while(1){
printf("リスト番号12-?:");
scanf("%d",&n);
switch
(n){
// case 1:
// list12_01();
// break;
// case 2:
// sample12_01();
// break;
// case 3:
// chap12_03();
// break;
case 5:
chap12_05();
break;
case 6:
chap12_06();
break;
case 7:
chap12_07();
break;
case 8:
chap12_08();
break;
}
}
return 0;

}

2012.11.24  型 struct 2

#include<stdio.h>

struct seiseki ;
seiTyp tdt;

typedef struct seiseki1_1 seityp;

struct seiseeki_1 {
char name[20];
int kokugo;
int sansuu;
int rika;
int syakai;
}seya = ;

struct seiseki_1 dt1 = {"田中例1",98,71,85,90};
struct seiseki_1 d1[10] ;
struct seiseki_1 sdt;

typedef unsigned int UINT;
int chap12_03(void)
{
SeiTtp
int i;
UINT a;
char name[30];
for(i=0; i< 4; i++){
printf(" %s %d %d %d %d\n" ,d1[i].name,d1[i].kokugo,d1[i].sansuu,d1[i].rika,d1[i].syakai);

printf("名前:");
scanf("%s",name);
printf("国語:");
scanf("%d,&kokugo");

printf("名前:");
printf("国語:");
scanf("%d,&sdt.kokugo");
sdt.sansuu =0;
sdt.rika= 0;
sdt.syakai;

}
return 0;
}


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#include<stdio.h>
//int chap12_03(void);
//int list12_01(void);
//int sample12_01(void);

int chap12_05(void);
int chap12_06(void);
int chap12_07(void);
int chap12_08(void);

int main(void)
{
int n;

while(1){
printf("リスト番号12-?:");
scanf("%d",&n);
switch
(n){
// case 1:
// list12_01();
// break;
// case 2:
// sample12_01();
// break;
// case 3:
// chap12_03();
// break;
case 5:
chap12_05();
break;
case 6:
chap12_06();
break;
case 7:
chap12_07();
break;
case 8:
chap12_08();
break;
}
}
return 0;

}

2012.11.16  型 struct

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

struct seiseki {
char name[20];
int kokugo;
int sansuu;
int rika;
int syakai;
};

struct {
char name[20];
int kokugo;
int sansuu;
}seit;

struct meibo{
int no;
char name[30];
double ave;
}mei2;

struct meibo mei;

int list12_01(void)
{
struct seiseki seito;
int kokugo;

strcpy(seito.name,"田中一郎");
seito.kokugo = 80;
seito.sansuu = 90;
seito.rika = 75;
seito.syakai = 85;
kokugo = seito.kokugo;

kokugo = seito.kokugo;

printf("名前:%s\n",seito.name);
printf("国語:%d\n",seito.kokugo);
printf("算数:%d\n",seito.sansuu);
printf("理科:%d\n",seito.rika);
printf("社会:%d\n",seito.syakai);
return 0;
}


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#include<stdio.h>
//int chap12_03(void);
//int list12_01(void);
//int sample12_01(void);

int chap12_05(void);
int chap12_06(void);
int chap12_07(void);
int chap12_08(void);

int main(void)
{
int n;

while(1){
printf("リスト番号12-?:");
scanf("%d",&n);
switch
(n){
// case 1:
// list12_01();
// break;
// case 2:
// sample12_01();
// break;
// case 3:
// chap12_03();
// break;
case 5:
chap12_05();
break;
case 6:
chap12_06();
break;
case 7:
chap12_07();
break;
case 8:
chap12_08();
break;
}
}
return 0;

}

2012.11.9  1文字ずつ表示するPG

#include<stdio.h>

void strdisp1(char *p);
void strdisp2(char str[]);
void strdisp3(char str[]);
void strdisp4(char str[]);

int list11_10(void)
{

char s[]="abcde";

strdisp1(s);
strdisp1("XYZ");
strdisp2(s);
strdisp2("XYZ");
strdisp2("kaneko chikara");

strdisp3("chikara kaneko");
strdisp4("abcdefg");
return 0;
}
void strdisp1(char *p)
{

printf("string=%s\n",p);
}

void strdisp2(char str[])
{

printf("string=%s\n",str);
printf("アドレス%d\n",&str);
}
void strdisp3 (char str[])
{
char i;

for(i=0;str[i] != '\0'; i++) {
str[i] = str[i]-0x20;
printf("string=%x\n",str[i]);
}
}
void strdisp4(char str[])
{
//1文字づつ表示するプログラムを作成しましょう
int i;
for(i=0; i != '\0'; i++)
{
printf("%c\n",str[i]);
}

}


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#include<stdio.h>

int list11_0(void);
int list11_8(void);
int list11_9(void);
int list11_10(void);
int main(void)
{
int n;
while(1){
printf("リスト番号(11-?):");
scanf("%d",&n);
if(n ==-1){
printf("終了します、\n");
}
switch(n)
{
case 0:
list11_0();
break;
case 8:
list11_8();
break;
case 9:
list11_9();
break;
case 10:
list11_10();
break;
}
}

return 0;
}

 

 

 

2012.11.2  ドンドンいきますよぉ

#include<stdio.h>

void disp(int dt[][5]);
void sum3(int sum3[3]);
void addY(int a[][5], int sumY[5]);
void add3(int a[][5], int sum3[]);

int list11_9(void)
{
int a[3][5]={
{11,12,13,14,15},
{16,17,18,19,20},
{21,22,23,24,25},
};
int sum3[3];
int sumY[5];

printf("%p\n",a);
disp(a);

addY(a,sumY);
printf("0列目の和:%d\n",sumY[0]);
printf("1列目の和:%d\n",sumY[1]);
printf("2列目の和:%d\n",sumY[2]);
printf("3列目の和:%d\n",sumY[3]);
printf("4列目の和:%d\n",sumY[4]);

add3(a,sum3);
printf("0行目の和:%d\n",sum3[0]);
printf("1行目の和:%d\n",sum3[1]);
printf("2行目の和:%d\n",sum3[2]);

return 0;
}
void addY(int a[][5], int sumY[])
{
int x,y;
for( x= 0; x < 5; x++){
sumY[x] =0;
for(y = 0; y < 3;y++)
sumY[x] += a[y][x];
}
}
void add3(int a[][5], int sum3[])
{
int x, y;

for(y = 0; y < 3; y++) {
sum3[y] = 0;
for(x=0; x<=4; x++) {
sum3[y] += a[y][x];
}
}
/*
y = 0;
//sum3[0] = a[0][0]+a[0][1]+a[0][2]+a[0][3]+a[0][4];
sum3[y] = 0;
for(x=0; x<=4; x++){
sum3[y] += a[y][x];
}

y = 1;
//sum3[1] = a[1][0]+a[1][1]+a[1][2]+a[1][3]+a[1][4];
sum3[y] = 0;
for(x=0; x<=4; x++){
sum3[y] = sum3[y] + a[y][x];
}

y = 2;
//sum3[2] = a[2][0]+a[2][1]+a[2][2]+a[2][3]+a[2][4];
sum3[y] = 0;
for(x=0; x<=4; x++){
sum3[y] += a[y][x];
}
*/
}
void disp(int dt[][5])
{
int x,y;

for(y=0;y<3;y++){
for(x=0;x<5;x++)
printf("%d",dt[y][x]);
putchar('\n');
}
}

void sum3(int dt[][5])
{
int x,y;

for(y=0;y<3;y++){
for(x=0;x<5;x++)
printf("%d",dt[y][x]);
putchar('\n');
}
}


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#include<stdio.h>

int list11_0(void);
int list11_8(void);
int list11_9(void);
int list11_10(void);
int main(void)
{
int n;
while(1){
printf("リスト番号(11-?):");
scanf("%d",&n);
if(n ==-1){
printf("終了します、\n");
}
switch(n)
{
case 0:
list11_0();
break;
case 8:
list11_8();
break;
case 9:
list11_9();
break;
case 10:
list11_10();
break;
}
}

return 0;
}

 

 

 

2012.10.26  簡単なプログラム

#include<stdio.h>

void goukei1(int *dt);
void goukei2(int dt[]);
void goukei3(int dt[], int n);
//void mycpy (int dt_src[] ,int dt_dst[]);

int list11_8(void)
{
int a[10] = { 1, 3, 6, 2, 8, 32, 67, 99,16, -1 };
// int b[10];
int n = 100;
goukei1(a);
goukei2(a);
goukei3(a, 8);

// sub(a,b,c);
// mycpy(a,b);
// func1(n);
// printf("%x\n",a);
printf("%x\n",&n);
printf("%x\n",n);
return 0;
}
//void func1 (int k[])
//{
//}
//void sub(int dt_a[],int dt_b[],int dt_c[])
//void mycpy (int dt_src[] ,int dt_dst[])
//{
// for (i=0; dt_src[i] i=-1; i++){
// dt_dst[i] = dt_src[i];
// }
// dt_dst[i] = dt_src[i];

void goukei1(int *pt)
{
int sum = 0;

while(*pt != -1) {
sum += *pt;
++pt;
}
printf("合計 = %d\n", sum);
}

void goukei2(int dt[])
{
int i, sum = 0;

for(i = 0; dt[i] != -1; i++) {
sum += dt[i];
}
printf("合計 = %d\n", sum);
}

void goukei3(int dt[], int n)
{
int i, sum = 0;

for(i = 0; i < n; i++) {
sum += dt[i];
}
printf("合計 = %d\n", sum);


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#include<stdio.h>

int list11_0(void);
int list11_8(void);
int list11_9(void);
int list11_10(void);
int main(void)
{
int n;
while(1){
printf("リスト番号(11-?):");
scanf("%d",&n);
if(n ==-1){
printf("終了します、\n");
}
switch(n)
{
case 0:
list11_0();
break;
case 8:
list11_8();
break;
case 9:
list11_9();
break;
case 10:
list11_10();
break;
}
}

return 0;
}

 

 

 

2012.10.19  引数・ポインタ

#include <stdio.h>

void datc_add(char *p, int *pn)
{
int sum = 0;
int i;

for(i = 0; i < 10; i++) {
sum += *p++;
}

*pn = sum;
}

int list11_0(void)
{
char datc[10] = {0x01, 0x03, 0x05, 0x07, 0x09, 0x11, 0x13, 0x15, 0x17, 0x19};

int n;

datc_add(datc, &n);

printf("%x\n", n);

return 0;
}

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#include<stdio.h>

int list11_0(void);
int list11_8(void);
int list11_9(void);
int list11_10(void);
int main(void)
{
int n;
while(1){
printf("リスト番号(11-?):");
scanf("%d",&n);
if(n ==-1){
printf("終了します、\n");
}
switch(n)
{
case 0:
list11_0();
break;
case 8:
list11_8();
break;
case 9:
list11_9();
break;
case 10:
list11_10();
break;
}
}

return 0;
}

 

 

 

2012.10.12  引数・配列 2

#include <stdio.h>
#include "date.h"

int area[10] = { 32, 45, 23, 13, 64, 7, 38, 18, 52, 0};

//sum
int sum(int st ,int ed)
{
int i,wa;

for(wa = 0, i=st; i<=ed;i++){ //int sum のst ed
wa+=area[i];
}
return wa;
}

//sum2
int sum2(int area2[], int st, int ed)
{
int i,wa;

for(wa = 0, i=st; i<=ed;i++){ //int sum のst ed
wa+=area2[i];
}
return wa;
}

//abs関数
int myabs (int n)
{
if( n >= 0)
return n;
else
return -n;
}
//引数の値がプラスならマイナスで戻す/--なら+で戻す
int absx (int j)
{
return -j;
}
//massage
void message(char msg[] ,int n)
{
if(n == 0)
{puts(msg);
return;
}
printf("%s = %d\n",msg,n);
}

int main(void)
{

int area2[10] = { 32, 45, 23, 13, 64, 7, 38, 18, 52, 0};
int a;
char str1[] = "メッセージ";
char str2[] = "メッセンジャー";

a = sum(2 , 7)*2;
printf("%d\n",a);
a = sum(1 , 8)/2;
printf("%d\n",a);
a = sum(4 , 8)+ sum(0,3);
printf("%d\n",a);
a = sum(0 , 7);
printf("%d\n",a);
a = sum(0 , 9);
printf("%d\n",a);

a = myabs(-100);
printf("meabs = %d\n",a);

a = myabs(-100);
printf("meabs = %d\n",a);

a = absx(-100);
printf("absx = %d\n",a);
a = absx(100);
printf("absx = %d\n",a);

a = sum2(area2 , 0 , 9);
printf("%d\n",a);

message(str1,0);
message(str2,1);
return 0;
}

/* 関数を使わないと
int i,wa;
for(wa = 0,i=2;i<7;i++){
wa+=area[i];
}
printf("%d\n",wa);

for(wa = 0,i=1;i<8;i++){
wa+=area[i];
}
printf("%d\n",wa);

for(wa = 0,i=4;i<8;i++){
wa+=area[i];
}
printf("%d\n",wa);

for(wa = 0,i=1;i<7;i++){
wa+=area[i];
}
printf("%d\n",wa);

for(wa = 0,i=1;i<9;i++){
wa+=area[i];
}
printf("%d\n",wa);*/

 

//回答例
/*{
j = ~+1;
}

{
if(j > 0)
return -j;
else if(j==0)
return j;
else
return -j;
}
*/

2012.10.5  引数・配列

#include <stdio.h>

void goukei1(int *dt);
void goukei2(int dt[]);
void goukei3(int dt[], int n);
void bai2(int dt_src[], int dt_dst[]);
void bai2n(int dt_src[], int dt_dst[], int n);
void setno(int dt[]);
void setnon(int dt[], int n);
int sum1(int dt[]);
int sum2(int dt1[], int dt2[], int *ans2);

void bai2(int dt_src[], int dt_dst[])
{
int i;
for(i = 0; dt_src[i] != -1; i++)
dt_dst[i] = dt_src[i] * 2;
dt_dst[i] = -1;
}

void bai2n(int dt_src[], int dt_dst[], int n)
{
int i;

for(i = 0; i < n; i++)
dt_dst[i] = dt_src[i] * 2;
}

void setno(int dt[])
{
int i;

for(i = 0; i < 9; i++)
dt[i] = i + 1;
dt[i] = -1;
}

void setnon(int dt[], int n)
{
int i;

for(i = 0; i < n - 1; i++)
dt[i] = i + 1;
dt[i] = -1;
}

int sum1(int dt[])
{
int i, sum = 0;

for(i = 0; dt[i] != -1; i++) {
sum += dt[i];
}

return sum;
}

int sum2(int dt1[], int dt2[], int *ans2)
{
int i, ans1 = 0;

for(i = 0; dt1[i] != -1; i++) {
ans1 += dt1[i];
}
*ans2 = 0;
for(i = 0; dt2[i] != -1; i++) {
*ans2 += dt2[i];
}

return ans1;
}

int main(void)
{
int a[10] = { 1, 3, 6, 2, 8, 32, 67, 99, -1 };
int b[10];
int c[10];
int d[10];
int z, w;

bai2(a, b);
goukei2(b);
bai2n(b, c, 10);
goukei3(c, 10);
setno(d);
goukei2(d);
setnon(d, 7);
goukei2(d);
z = sum1(a);
printf("合計:%d\n", z);
z = sum2(a, b, &w);
printf("a合計:%d b合計:%d\n", z, w);

goukei1(a);
goukei2(a);
goukei3(a, 8);

return 0;
}

void goukei1(int *pt)
{
int sum = 0;

while(*pt != -1) {
sum += *pt;
++pt;
}
printf("合計 = %d\n", sum);
}

void goukei2(int dt[])
{
int i, sum = 0;

for(i = 0; dt[i] != -1; i++) {
sum += dt[i];
}
printf("合計 = %d\n", sum);
}

void goukei3(int dt[], int n)
{
int i, sum = 0;

for(i = 0; i < n; i++) {
sum += dt[i];
}
printf("合計 = %d\n", sum);
}

2012.9.28  配列を使った引数

//配列を使った引数 */
#include <stdio.h>
void main( )
{
void func(char str1[ ], char n);
char s1[4] = "ABC"; /* 文字列の初期値設定 */
char c = 12; /* 数値の初期化設定 */

printf("%p\n",s1);

func (s1,c);
printf("main 関数s1 の文字列 [%s]\n", s1);
printf("main 関数c の値 [%d]\n", c);
}
void func (char str1[ ],char n)
{
printf("func 関数の設定前\n");
printf("func 関数str1 の文字列 [%s]\n", str1);
printf("func 関数n の値 [%d]\n\n", n);
str1[0] = 'D';
str1[1] = 'E';
str1[2] = 'F';
str1[3] = '\0'; /* ヌルを代入することで文字列にする */
n = 34;
printf("func 関数の設定後\n");
printf("func 関数str1 の文字列 [%s]\n", str1);
printf("func 関数n の値 [%d]\n\n", n);
}

2012.9.21  関数

#include<stdio.h>

void putd_ad(int n);

int main (void)
{
int a = 10,b=0x12345678;
printf("%x\n",&a);
printf("%x\n",&b);
printf("関数呼び出し前\n",a);
putd_ad(a);
printf("関数呼び出し後\n",a);
/*putd_ad(20);*/

printf("%x\n",a);
printf("%x\n",b);

return 0;
}
void putd_ad(int n)
{
printf("数値は%dです\n",n);
n=100;
}


2012.9.14  argv

#include<stdio.h>
#include<stdlib.h>
/*
int main(int argc, char **argv)
{

if(argc !=3) {
printf("終了\n");
(void) getchar();
exit(1);
}
printf("argv=%d\n",argc);
printf("argv0=%s\n",*argv);
printf("argv1=%s\n",*(argv+1));
printf("argv2=%s\n",*(argv+2));

(void)getchar();
return 0;
}
*/
int main(int argc, char argv[])
{
int i;
for(i=0; i<argc; i++){
printf("argv[%d]=%s\n",i,argv[i]);
}
// if(argc !=3) {
// printf("終了\n");
// (void) getchar();
// exit(1);
// }
//printf("argv=%d\n",argc);
//printf("argv0=%s\n",argv);
//printf("argv1=%s\n",(argv[1]));
//printf("argv2=%s\n",(argv[2]));

// (void)getchar();
return 0;
}

2012.9.7   三角形の面積を求める

/* 三角形の面積を求める */
#include <stdio.h>
void main( )
{
double triangle(int a, short b);
int base;
short height;
double result;
printf("底辺の値 = ");
scanf("%d", &base);
printf("高さの値 = ");
scanf("%d", &height);
result = triangle(base, height);
printf("三角形の面積は = %f\n",result);
}
double triangle(int a, short b)
{
double c;
c = a * b / 2.0;
return c;
}

2012.8.31   引数

#include <stdio.h>

int list11_8(void);
int list11_9(void);
int list11_10(void);
int chap11_11(void);
int list11_12(void);
int list11_13(void);
int list11_14(void);
int list11_15(void);

int main(void)
{
int n;

while( 1 ) {
printf("リスト番号(11-?):");
scanf("%d", &n);
if(n == -1) {
printf("終了します。\n");
return 0;
}
switch( n ) {
case 8:
list11_8( );
break;
case 9:
list11_9( );
break;
case 10:
list11_10( );
break;
case 11:
chap11_11( );
break;
case 12:
list11_12( );
break;
case 13:
list11_13( );
break;
case 14:
list11_14( );
break;
case 15:
list11_15( );
break;
}
}

return 0;
}

ここまでがメイン

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#include <stdio.h>

void goukei1(int *dt);
void goukei2(int dt[]);
void goukei3(int dt[], int n);
void mycpy(int dt_src[], int dt_dst[]);
void sub(int dt_a[], int dt_b[], int dt_c[], int n);

int list11_8(void)
{
int a[10] = { 1, 3, 6, 2, 8, 32, 67, 99, 16, -1 };
int b[10];
int c[10];
int n = 100;

goukei1(a);
goukei2(a);
goukei3(a, 8);

mycpy(a, b);
sub(a, b, c, 9);

printf("%x\n", a);
printf("%x\n", &n);
printf("%x\n", n);

return 0;
}

void sub(int dt_a[], int dt_b[], int dt_c[], int n)
{
int i;

for(i = 0; i < n; i++) {
dt_c[i] = dt_a[i] - dt_b[i];
}
}

void mycpy(int dt_src[], int dt_dst[])
{
int i;

for(i = 0; dt_src[i] != -1; i++) {
dt_dst[i] = dt_src[i];
}
dt_dst[i] = dt_src[i];
}

void goukei1(int *pt)
{
int sum = 0;

while(*pt != -1) {
sum += *pt;
++pt;
}
printf("合計 = %d\n", sum);
}

void goukei2(int dt[])
{
int i, sum = 0;

for(i = 0; dt[i] != -1; i++) {
sum += dt[i];
}
printf("合計 = %d\n", sum);
}

void goukei3(int dt[], int n)
{
int i, sum = 0;

for(i = 0; i < n; i++) {
sum += dt[i];
}
printf("合計 = %d\n", sum);
}


2012.8.25   配列とポインタ

#include <stdio.h>

int chap10_01(void);
int chap10_05(void);
int chap10_06(void);
int chap10_07(void);
int chap10_08(void);
int chap10_09(void);
int main(void)
{
int n;

while( 1 ) {
printf("項目番号入力(10-?):");
scanf("%d", &n);

switch( n ) {
case 1:
chap10_01( );
break;
case 5:
chap10_05( );
break;
case 6:
chap10_06( );
break;
case 7:
chap10_07( );
break;
case 8:
chap10_08( );
break;
case 9:
chap10_09( );
break;
}
}

return 0;
}

 

ここまでがメイン

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#include<stdio.h>

void sub(int argc, char *argv[])
{
int i;
for(i = 0; i < argc; i++)
{
printf("%s\n",argv[i]);
}
}
void quesion(int n, char *namev[][10])
{
int i;
printf("問題「2次元配列を文字列を表示」\n");
{
for(i=0; i<n;i++ ){
printf("%s\n",namev[i]);

}
}

}

int chap10_09(void)
{

char namev[3][10]=
{
"January",
"February",
"March"
};

char *namep[3] = {
"January",
"Februay",
"March"
};
printf("namev [%x]\n",namev);
printf("namep [%x]\n",namep);
printf("namep [%x]\n",&namep[0]);
printf("namep [%x]\n",namep[1]);
printf("namep [%x]\n",namep[2]);

sub(3,namep);

quesion(3,namev);

printf("アドレスを確認\n");
return 0;
}


2012.8.17   strcmp

#include <stdio.h>

int chap10_01(void);
int chap10_05(void);
int chap10_06(void);
int chap10_07(void);
int chap10_08(void);
int chap10_09(void);
int main(void)
{
int n;

while( 1 ) {
printf("項目番号入力(10-?):");
scanf("%d", &n);

switch( n ) {
case 1:
chap10_01( );
break;
case 5:
chap10_05( );
break;
case 6:
chap10_06( );
break;
case 7:
chap10_07( );
break;
case 8:
chap10_08( );
break;
case 9:
chap10_09( );
break;
}
}

return 0;
}

 

ここまでがメイン

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

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

int chap10_08(void)
{
char s[4] = "abc";
char *p = "xyz", *p1;
char *cp1 = "abc";
char *cp2 = "def";
char *wkp;

putchar(s[0]);
putchar(s[1]);
putchar(s[2]);
putchar('\n');
puts(s);

p1 = p;
while(*p1 != '\0') {
putchar(*p1);
p1++;
}
putchar('\n');

putchar(p[0]);
putchar(p[1]);
putchar(p[2]);
putchar('\n');
puts(p);

strcpy(s, "XYZ");
p = "ABC";
puts(s);
puts(p);

printf("cp1 = %s\n", cp1);
printf("cp2 = %s\n", cp2);

if(strcmp(cp1, cp2) < 0) {
wkp = cp1;
cp1 = cp2;
cp2 = wkp;
}

printf("cp1 = %s\n", cp1);
printf("cp2 = %s\n", cp2);

return 0;
}


2012.8.10   NULL

#include <stdio.h>

int chap10_01(void);
int chap10_05(void);
int chap10_06(void);
int chap10_07(void);
int chap10_08(void);
int chap10_09(void);
int main(void)
{
int n;

while( 1 ) {
printf("項目番号入力(10-?):");
scanf("%d", &n);

switch( n ) {
case 1:
chap10_01( );
break;
case 5:
chap10_05( );
break;
case 6:
chap10_06( );
break;
case 7:
chap10_07( );
break;
case 8:
chap10_08( );
break;
case 9:
chap10_09( );
break;
}
}

return 0;
}

 

ここまでがメイン

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

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

int chap10_07(void)
{
char str[27] = "abcdefghijklmnopqrstuvwxyz";
char *ps = str, *pe = &str[15];
char *p, *p1;
int i;

while(ps < pe) {
putchar(*ps);
ps++;
}
putchar('\n');

p = (char *)malloc(100);
p1 = p;

for(i = 0; i < 100; i++) {
// *(p + i) = 0;
*p1 = 0;
p1++;
}

if(p != NULL)
free(p);

return 0;
}

2012.8.3   sizeof & ポインタぁぁあぁぁ

#include <stdio.h>

int chap10_01(void);
int chap10_05(void);
int chap10_06(void);
int chap10_07(void);
int chap10_08(void);
int chap10_09(void);
int main(void)
{
int n;

while( 1 ) {
printf("項目番号入力(10-?):");
scanf("%d", &n);

switch( n ) {
case 1:
chap10_01( );
break;
case 5:
chap10_05( );
break;
case 6:
chap10_06( );
break;
case 7:
chap10_07( );
break;
case 8:
chap10_08( );
break;
case 9:
chap10_09( );
break;
}
}

return 0;
}

 

ここまでがメイン

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#include <stdio.h>

int chap10_06(void)
{
char ch, ss[5] = "ABCD";
char *p = ss;
int i = 0x123;
int *ip = &i;

char c, *cp;
short s, *sp;
long l, *lp;
double d, *dp;

cp = &c;
sp = &s;
lp = &l;
dp = &d;

printf("%x\n", ip);
printf("%x\n", *ip);

for(i = 0; i < 5; i++) {
printf("cp = %x ", cp);
printf("sp = %x ", sp);
printf("lp = %x ", lp);
printf("dp = %x\n", dp);

cp = cp + 1;
sp = sp + 1;
lp = lp + 1;
dp = dp + 1;
/*
cp++;
sp++;
lp++;
dp++;
*/
}

ch = ss[3];
ch = p[3];

// ch = *ss++;
// ch = *p++;

for(i = 0; i < 4; i++) {
putchar(ss[i]);
}
putchar('\n');

for(i = 0; i < 4; i++) {
putchar(p[i]); // p + (i * sizeof(char))
}
putchar('\n');

for(i = 0; i < 4; i++) {
putchar(*(ss + i));
}
putchar('\n');

for(i = 0; i < 4; i++) {
putchar(*(p + i));
}
putchar('\n');

for(i = 0; i < 4; i++) {
putchar(*p);
p++;
}
putchar('\n');

p = ss;
printf("ポインタ変数pの内容[%x] \
配列ssのアドレス[%x]\n", p, ss);
p = &ss[0];
printf("ポインタ変数pの内容[%x] \
配列ss[0]のアドレス[%x]\n", p, &ss[0]);

// ss = p; // 誤り
p = ss + 2;
printf("ポインタ変数pの内容[%x] \
配列ss + 2のアドレス[%x]\n", p, ss + 2);
p = &ss[2];
printf("ポインタ変数pの内容[%x] \
配列ss[2]のアドレス[%x]\n", p, &ss[2]);

return 0;
}



2012.7.27   ポインタぁぁあぁっぁっぁぁぁぁぁぁぁあ

#include <stdio.h>

int chap10_01(void);
int chap10_05(void);
int chap10_06(void);
int chap10_07(void);
int chap10_08(void);
int chap10_09(void);
int main(void)
{
int n;

while( 1 ) {
printf("項目番号入力(10-?):");
scanf("%d", &n);

switch( n ) {
case 1:
chap10_01( );
break;
case 5:
chap10_05( );
break;
case 6:
chap10_06( );
break;
case 7:
chap10_07( );
break;
case 8:
chap10_08( );
break;
case 9:
chap10_09( );
break;
}
}

return 0;
}

 

ここまでがメイン

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

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

int chap10_05(void)
{
int a = 100; // 変数の初期化
char str[10] = "abcdefghi"; // 文字配列の初期化

// int *p; // ポインタ変数宣言
int *ip = &a; // ポインタ変数初期化
char *sp = str;
char *sp3 = &str[3]; // 要素番号3のアドレスを設定

char *sp1 = "xyz";

// malloc関数はfree関数と組で使用する。
char *mp = (char *)malloc(100);

free( mp );

// ip = &a;
// str = &a;

return 0;
}


2012.7.20   ポインタと配列

#include <stdio.h>

int chap10_01(void);
int chap10_05(void);
int chap10_06(void);
int chap10_07(void);
int chap10_08(void);
int chap10_09(void);
int main(void)
{
int n;

while( 1 ) {
printf("項目番号入力(10-?):");
scanf("%d", &n);

switch( n ) {
case 1:
chap10_01( );
break;
case 5:
chap10_05( );
break;
case 6:
chap10_06( );
break;
case 7:
chap10_07( );
break;
case 8:
chap10_08( );
break;
case 9:
chap10_09( );
break;
}
}

return 0;
}

 

ここまでがメイン

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#include <stdio.h>

int dev0(int *p);

int chap10_01(void)
{
int a = 0x100, b;
int *p;
int area[5];

int s, w;

printf("%x\n", &w);
s = dev0(&w);
printf("30 / 4 = %d ・・・ %d\n", s, w);

for(b = 0; b < 5; b++) {
printf("area[%d]のアドレス[%x]\n", b, &area[b]);
}

printf("変数a[%x] b[%x] の格納場所\n", &a, &b);

b = 0x200;
printf("変数a[%x] b[%x]\n", a, b);
p = &a;
b = *p;
*p = 0x300;
printf("変数a[%x] b[%x]\n", a, b);

return 0;
}

//関数
int dev0(int *p)
{
int shu, amari;

shu = 30 / 4;
amari = 30 % 4;
*p = amari;

return shu;
}


2012.7.13   一個一個見ていけばわかります

#include<stdio.h>

int main(void)
{
char ss[20] = "add.txt";
int i;

i= 0;
do
{
putchar(ss[i]);
}while(ss[i++]!='.');

printf("\n");

i=0;
while(ss[i]!='.')
{
putchar(ss[i++]);
}
putchar(ss[i]);
printf("\n");


i= 0;
do
{
putchar(ss[i]);
}while(ss[i++]!='.');
printf("%c\n",ss[i]);

//txtまで表示
i= 0;
do
{
putchar(ss[i]);
}while(ss[i++]!='x');
printf("%c\n",ss[i]);

 

i= 0;
do
{
putchar(ss[i]);
}while(ss[++i]!='\0');
printf("%c\n",ss[i]);

 

i=0;
while(ss[i]!='\0')
{
putchar(ss[i++]);
}

//putchar(ss[i]);

printf("%c\n",ss[i]);

return 0;
}



2012.7.6   論理演算

#include<stdio.h>

char *binary(short d)
{
static char dat[17] = {0};
int b = 0x8000,i;
for(i = 0; i < 16; i++, b >>=1)
{
dat[i] = (b & d) ? '1':'0';
}
dat[16] = '\0';
return dat;
}

int main(void)
{
short a,z;
//AND(&)処理
a=0x5555;
z=a & 0xff;
printf("%#06x\n",z);

z= a & 0x0f0f;
printf("%#06x\n",z);

//|(OR処理)
a = 0x0055;
z = a | 0x8aaa;
printf("%s %#06x\n" ,binary(z),z &0xffff);

//^(XOR処理)
a = 0x5555;
z = ~ 0x0ff0;
printf("%#06x\n", z &0xffff);

z =~ 0x0800;
printf("%#06x\n", z &0xffff);
//~ (NOT処理)「補数」
a = 0x1234;
z = ~a;
printf("%#06x\n",z &0xffff);


return 0;
}

2012.6.29   while 1 は

↓見てのとおりですがwhile 1とは無限ループですbreakを使うことによって抜けられます

そしてwhile(a<100)aが100になったら抜けられます、色々な記載ができますので参考までに

 

#include<stdio.h>

int main(void)
{

int i = 0,n =0,q0=0,q1=0;
int area[30];

while(1)
{
area[i] = i +1;
if(++i > 30)
break;
}
i=0;
while(1)
{
printf("area[%d] = %d\n" ,i,area[i]);
if(++i >=30)
break;
}

while(1)
{

printf("i = %d n = %d \n" ,i,n);
q0 = i++;
q1 = n--;
printf("i = %d n = %d\n",i,n);
q0 = ++i;
q1 = --n;


if(i >= 10 )
break;
}
return 0;
}


2012.6.22   else それ以外は


#include<stdio.h>
int main(void)
{

int a;

printf("変数aに値を入力\n");
scanf("%d",&a);

if(!a)
printf("真\n");
else
printf("偽\n");

return 0;
}


2012.6.15   if分岐は==やその他の動きで

#include <stdio.h>

int main(void)
{
int a, b;

 

 

printf("変数aと変数bに値を入力:");
scanf("%d%d", &a, &b);

if(a == b) {
printf("%d と %d は等しい\n", a, b);
}

if(a != b) {
printf("%d と %d は等しくない\n", a, b);
}

printf("%d == %d は %d, %d != %d は %d\n",
a, b, a == b, a, b, a != b);

return 0;
}


2012.6.8  もしも  if

#include<stdio.h>

int main(void)
{
int a;

a = 20;

printf("1人分%d 余り%d\n" ,a/3,a%3);


("変数aに値を入力:\n");

scanf("%d", &a);

if(a)
{
printf("へんすうa[%d]は0以外\n",a);
}else{
printf("変数aは[%d]は0以外である\n",a);

}
printf("8 > 5 は %d になる。\n",8>5);
printf("8 < 5 は %d になる。\n",8<5);
printf("8 > 8は %dになる。 \n",8>8);
printf("8 >= 8は %dになる。 \n",8>=8);
return 0;
}

2012.6.1  入力

#include<stdio.h>

int main(void)
{

/*
ビールがn本あります、箱に入れたとき、箱は?
箱と余りを求めなさい、箱は24本入りとする
*/
int n;

scanf("%d" ,&n);
printf("%d本のビールは、箱%dと 余り%d本 \n" ,n,n/24,n%24);
return 0;
}


2012.5.25  文字配列

#include<stdio.h>

int main()
{
//char s[6] = {'a'0x62,'c',100,'e','\0'};
//char s[6] = {'A',BL',C','D','E','\0'};
char s[6] = "ABCDE";
char c = 'a';

char days[4][10] = {
"Sunday",
"Mondey",
"Tuesdey",
"Wednesdey"
};

char MOUTH[12][14]=
{
"JANUARY_1GATU",
"FEBRURY",
"MARCH",
"APRIL",
"MAY",
"JUNE",
"JULY",
"AUGUST",
"SEPTEMBER",
"OCTOBER",
"NOVENBER",
"DECEMBER"
};
puts(MOUTH[0]);
puts(MOUTH[1]);
puts(MOUTH[2]);
puts(MOUTH[3]);
puts(MOUTH[4]);
puts(MOUTH[5]);
puts(MOUTH[6]);
puts(MOUTH[7]);
puts(MOUTH[8]);
puts(MOUTH[9]);
puts(MOUTH[10]);
puts(MOUTH[11]);
putc(MOUTH[0][0],stdout);

printf("%s\n " , MOUTH[0]);
printf("%s\n " , MOUTH[1]);
printf("%s\n " , MOUTH[2]);
printf("%s\n " , MOUTH[3]);
printf("%c\n " , MOUTH[0][0]);
printf("%c\n " , MOUTH[0][1]);
printf("%c\n " , MOUTH[2][2]);

puts(days[0]);
puts(days[1]);
puts(days[2]);
puts(days[3]);
printf("%s\n " , days[0]);
printf("%s\n " , days[1]);
printf("%s\n " , days[2]);
printf("%s\n " , days[3]);
printf("%c\n " , days[0][0]);
printf("%c\n " , days[0][1]);

printf("%s\n" ,s);//文字配列の内容を文字列で出力
puts(s); //文字配列の内容を文字列で出力

printf(" 文字コード 文字\n");
printf("s[0] %x %c\n",s[0],s[0]);
printf("s[0] %x %c\n",s[1],s[1]);
printf("s[0] %x %c\n",s[2],s[2]);
printf("s[0] %x %c\n",s[3],s[3]);
printf("s[0] %x %c\n",s[4],s[4]);
printf("s[0] %x \n",s[5]);
printf(" c %x %c\n",c,c);
return 0;
}


2012.5.17  二次元配列

#include<stdio.h>
int main ()
{

int a[2][3] = {10,20,30,40,50,60};
int b[2][3] = {{10,20,30},
{40,50,60}};

int c[][3] = {10,20,30,40,50,60,70,80,90};
int sum[2][3][4] = {
{{1,2,3,4},
{5,6,7,6} ,
{9,10,11,12}},

{{25,26,27,28},
{29,30,31,32},
{33,34,35,36}},
};

printf("配列a「2」「3」の内容\n");
printf("[0][0]%d [0][1]%d [0][2]%d\n" ,a[0][0],a[0][1],a[0][2]);
printf("[1][0]%d [1][1]%d [1][2]%d\n" ,a[1][0],a[1][1],a[1][2]);

printf("配列b「2」「3」の内容\n");
printf("[0][0]%d [0][1]%d [0][2]%d\n" ,b[0][0],b[0][1],b[0][2]);
printf("[1][0]%d [1][1]%d [1][2]%d\n" ,b[1][0],b[1][1],b[1][2]);

printf("配列c「2」「3」の内容\n");
printf("[0][0]%d [0][1]%d [0][2]%d\n" ,c[0][0],c[0][1],c[0][2]);
printf("[1][0]%d [1][1]%d [1][2]%d\n" ,c[1][0],c[1][1],c[1][2]);
printf("[2][0]%d [2][1]%d [2][2]%d\n" ,c[2][0],c[2][1],c[2][2]);

printf("配列sum「2」「3」「4」の内容\n");
printf("[0][0][0]%d [0][0][1]%d [0][0][2]%d [0][0][3]%d\n" ,sum[0][0][0],sum[0][0][1],sum[0][0][2],sum[0][0][3]);
printf("[0][1][0]%d [0][1][1]%d [0][1][2]%d [0][1][3]%d\n" ,sum[0][1][0],sum[0][1][1],sum[0][1][2],sum[0][1][3]);
printf("[0][2][0]%d [0][2][1]%d [0][2][2]%d [0][2][3]%d\n" ,sum[0][2][0],sum[0][2][1],sum[0][2][2],sum[0][2][3]);

printf("配列sum「2」「3」[4]の内容\n");
printf("[1][0][0]%d [1][0][1]%d [1][0][2]%d [1][0][3]%d\n" ,sum[1][0][0],sum[1][0][1],sum[1][0][2],sum[1][0][3]);
printf("[1][1][0]%d [1][1][1]%d [1][1][2]%d [1][1][3]%d\n" ,sum[1][1][0],sum[1][1][1],sum[1][1][2],sum[1][1][3]);
printf("[1][2][0]%d [1][2][1]%d [1][2][2]%d [1][2][3]%d\n" ,sum[1][2][0],sum[1][2][1],sum[1][2][2],sum[1][2][3]);

return 0;

}


2012.5.11  配列

#include<stdio.h>

int ga[4] = {1,2,3,4};

int main()
{
int aa[4] = {10,11,12,13};
static int sa[4] = {20,21,22,23};

printf("グローバル配列 ga[0]:%2d[1]:%2d[2]:%2d[3]:%2d",
ga[0]),ga[1],ga[2],ga[3]);
printf("ローカルAuto変数[0]:%d[1]:%d[2]:%d[3]:%d",
aa[0]),aa[1],aa[2],aa[3]);
printf("ローカルstatic配列[0]:%d[1]:%d[2]:%d[3]:%d",
sa[0]),sa[1],sa[2],sa[3]);
return 0;

}

2012.5.5  define

#include<stdio.h>

#define BIAS 50

int main(void)
{

int a = 10;
int b = 20 +'A';
int c = BIAS - 30;
double d = 1.234;
register int e = 40;
int g = 'a';

printf("1 a = %d\n",a);
printf("2 b = %d\n",b);
printf("3 c = %d\n",c);
printf("4 d = %d\n",d);
printf("5 e = %d\n",e);
printf("6 g = %d\n",g);
return 0;
}

2012.4.30  簡単な関数作成

#include<stdio.h>

int glb;
int a = 20;
void sub (void)
{
// int a =10;
int b = 10 +20;
int c = a;
int d = a+30;

/* printf("a = 10%d\n",a);
printf("b=10+20:[%d]\n",b);
printf(" c = a%d\n",c);
printf("a= a +30 : %d\n",d);*/

printf("1 a= %d\n",a);
printf("2 b= %d\n",b);
printf("3 c= %d\n",c);
printf("4 d= %d\n",d);

}

int main(void)
{

int a =100; //AUTO変数初期化「初期値は100」
int aa; //AUTO変数 ゴミあり(不定値)
static int sa; //静的変数デフォルト値0

printf("1 auto変数初期化[%d]\n",a);
printf("2 auto変数ゴミ[%d]\n",aa);
printf("3 静的変数デフォルト値[%d]\n",sa);
printf("4 グローバル変数デフォルト値[%d]\n", glb);

sub();

return 0;
}

2012.4.27  位置☆

#include<stdio.h>

//char glb; //グローバル変数

static char glb;//スタティックはこの翻訳単位内だけの関数に使用する
int main(void)

{


/*int b = 100;先に定義しないとエラー

int a = b + 200;
int b = 100;
int c = d + 20, d = 10;
//int d = 10 .c = d + 20;

int *p = &dt,dt;
int dt, *p = &dt;
*/

//下記不定値なので、値を入力してから設定したほうがいい☆
//でないとごみが出る、警告が出る

//auto short as; オート変数
//printf("%x\n" ,as);

//short as; 通常定数
//printf("%x\n" ,as);

//register short as; レジスタ
//printf("%x\n",as);

//スタティック実行されたときから既に0後、値を保持していく☆
//static short as;
//コンパイル時に100を用意してくれている☆
//static short as =100 ;
//printf("%d\n",as);


return 0;
}

2012.4.20  宣言☆

#include<stdio.h>

int glb = 1000;

int main(void)
{
int loc_a = 10, loc_b=20, loc_c = 30;
printf("glb[%d] loc_a[%d] loc_b[%d] loc_c[%d] \n",
glb , loc_a, loc_b, loc_c );

{
int loc_b = 200, loc_c = 300;
int glb = 2000;

printf("glb[%d] loc_a[%d] loc_b[%d] loc_c[%d]\n",
glb, loc_a ,loc_b ,loc_c);
{
//ブロック2

int loc_c = 3000;
int glb = 3000;
printf("glb[%d] loc_a[%d] loc_b[%d] loc_c[%d]\n",
glb, loc_a, loc_b, loc_c );
}
}
printf("glb[%d] loc_a[%d] loc_b[%d] loc_c[%d]\n",
glb, loc_a, loc_b, loc_c);
return 0;
}

2012.4.13  static

#include<stdio.h>

static int a = 0;

void sum_auto(void)
{

int dt = 0;
dt = dt +1;
printf("auto dt[%d]\n",dt);

}
void sum_static(void)
{
static int dt = 0;
dt = dt + 1;
printf("static dt[%d]\n", dt);

}

int main(void)
{

sum_auto();
sum_auto();
sum_auto();

sum_static();
sum_static();
sum_static();
sum_static();
sum_static();
sum_static();


a = 100;
printf("a[%d]\n",a);
a = a+ 100;
printf("a[%d]\n",a);
a =a + 100;
printf("a[%d]\n",a);
a = 0;
printf("a[%d]\n",a);

return 0;
}

2012.4.6  応用2

#include<stdio.h>

void sub(void);

extern int glb1;

int main(void)
{

printf("%d\n",glb1);
// printf("%d\n",glb2);
sub();
return 0;

}
void sub(void)
{
extern int glb2;
printf("%d\n", glb1);
printf("%d\n", glb2);
}

 

 

 

int glb1 = 100;

int glb2 = 200;

2012.3.30  応用

#include<stdio.h>

void mr_A(void);
void mr_B(void);

int total_cnt = 0;

int main(void)
{
mr_A();
mr_A();
mr_A();

mr_B();
mr_B();

return 0;
}

 

 

 

 

#include<stdio.h>

static int call_cnt =0 ;

extern int total_cnt;

void mr_A(void)
{
total_cnt = total_cnt + 1;
call_cnt = call_cnt +1;

printf("A total_cnt[%d]\n"
,total_cnt);
printf("A call_cnt[%d]\n"
,call_cnt);
}

 

 

 

 

#include<stdio.h>

static int call_cnt =0 ;

extern int total_cnt;

void mr_B(void)
{
total_cnt = total_cnt + 1;
call_cnt = call_cnt +1;

printf("B total_cnt[%d]\n"
,total_cnt);
printf("B call_cnt[%d]\n"
,call_cnt);
}

 

 


2012.3.23  エクスターン

#include <stdio.h>

void func(void);

int glb = 1234;
extern int etn1;
int nn;

int n1;

int main(void)
{
n1 = 10;
printf("n1 = %d\n", n1);
printf("main:etn1=%d\n", etn1);
printf("main:glb=%d\n", glb);
func( );

printf("nn = %d\n", nn);

printf("n1 = %d\n", n1);
return 0;
}

 

 

 

 

#include <stdio.h>

extern int glb;

int etn1 = 567;
extern int nn;
extern int n1;

void func(void)
{
printf("n1 = %d\n", n1);
n1 = 100;
printf("n1 = %d\n", n1);

nn = 10;
printf("func:glb=%d\n", glb);

}


2012.3.16  グローバル・ローカル変数

#include<stdio.h>

int dd = 1234 ;//グローバル変数
int e;
extern int f;
static int g;

void func(void)//func関数
{
int dt = 5678;//ローカル変数
printf("fonc関数開始\n");
printf("dt = %d\n", dt);//ローカル変数が優先
printf("dd = %d\n", dd);
printf("func関数終了\n");
}

int main (void)
{
int dt = 1234;
int dd = 5678;
int a;
auto int b;
static int c ;
register int d;

printf("main関数開始\n");
func ();
printf("func関数呼び出し終了\n");
printf("dt = %d\n" ,dt);
printf("dd = %d\n" ,dd);


return 0;
}

2012.3.9  SWAP

#include<stdio.h>

void swap(int *x, int *y);

int chap11_11(void)
{

int a = 123, b = 456;

printf("a=%d b = %d\n",a,b);
swap(&a,&b);
printf("a=%d b = %d\n",a,b);

return 0;
}

void swap(int *x , int *y)
{

int wk;

wk = *x;
*x = *y;
*y = wk;

}

2012.3.3  実数.

#include<stdio.h>

 

int main(void)
{

int a = 3;
int b = 2;
float f1,f2,f3,f4;



f1 = (float)a / (float)b;
//f2 = (float)5 / (float)3;
f2 = 5.0f / 3.0f;
f3 = (float)a / b;
f4 = (float)(a / b);

printf("結果\nf1=[%f]\nf2=[%f]\nf3=[%f]\nf4=[%f] \n"
,f1,f2,f3,f4);

return 0;
}

2012.2.24  型.

#include<stdio.h>

int main(void)
{

char char_dt;
int int_dt;
float float_dt;
double double_dt;
short s = 5;
long l = (long)3.25;
double q,d = 5.1415;

char_dt = 0x7f;
int_dt = char_dt;
// 末尾にfを追加して、float型実数定数の値とする
float_dt = 12.3456789f;
double_dt = float_dt;

printf("int_dt[%d] char_dt[%d]\n",int_dt,char_dt);
printf("double_dt[%lf] float_dt[%f]\n",double_dt,float_dt);

printf("\n");
printf("\n");
printf("\n");
printf("\n");

int_dt = 0x4c7f;
char_dt = int_dt;
double_dt = 12.3456789;
float_dt = (float)double_dt;

printf("char_dt[%d] int_dt[%d]\n", char_dt, int_dt);
printf("float_dt[%f] double_dt[%lf]\n", float_dt,double_dt);
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");

printf("小数点部切り捨てられる型変換処理\n");
int_dt = (int)double_dt;
printf("int_dt[%d] double_dt[%lf]\n",int_dt, double_dt );

printf("\n");
printf("\n");
float_dt = (float)double_dt;
printf("float_dt[%lf] double_dt[%lf]\n",float_dt, double_dt );
printf("\n");
printf("\n");

q = s * l + d;
printf("結果[%f]\n",q);

return 0;

}

2012.2.17  配列苦手パート2.

#include<stdio.h>

int main(void)
{
char s[7];
char k[8];
s[0] = 'K';//0x6B
s[1] = 'a';//0x61
s[2] = 'n';//0x6E
s[3] = 'e';//0x65
s[4] = 'k';//0x6B
s[5] = 'o';//0x6F
s[6] = 0;
s[7] = 0;
printf("要素番号 0 1 2 3 4 5 \n");
printf("要素内容 %x %x %x %x %x %x \n" ,s[0],s[1],s[2],s[3],s[4],s[5]);
printf("%c%c%c%c%c%c::%s\n", s[0],s[1],s[2],s[3],s[4],s[5],s);
printf("%s\n" ,s);

k[0] = 'c';
k[1] = 'h';
k[2] = 'i';
k[3] = 'k';
k[4] = 'a';
k[5] = 'r';
k[6] = 'a';
k[7] = 0;
printf("要素番号 0 1 2 3  4 5 6 7\n");
printf("要素内容 %x %x %x %x %x %x %x\n" ,k[0],k[1],k[2],k[3],k[4],k[5],k[6]);
printf("%c%c%c%c%c%c%c::%s\n", k[0],k[1],k[2],k[3],k[4],k[5],k[6],s);
printf("%s\n" ,k);

return 0;
}

2012.2.10  苦手な配列

#include<stdio.h>

int main(void)
{
int area[3][4];
int a;
area[0][0] = 92;
area[1][0] = 158;
area[2][0] = 350;
area[0][1] = 392;
area[1][1] = 560;
area[2][1] = 15;
area[0][2] = 510;
area[1][2] = 30;
area[2][2] = 96;
area[0][3] = 9;
area[1][3] = 89;
area[2][3] = 210;

printf("要素列番号   [0]  [1]  [2]  [3]\n");
printf("要素行番号[2] %3d %3d %3d %3d\n"
, area[2][0],area[2][1],area[2][2],area[2][3]);
printf("要素行番号[1] %3d %3d %3d %3d\n"
,area[1][0],area[1][1],area[1][2],area[1][3]);
printf("要素行番号[0] %3d %3d %3d %3d\n"
,area[0][0],area[0][1],area[0][2],area[0][3]);

area[2][3] = area[0][0];

printf("要素列番号   [0]  [1]  [2]  [3]\n");
printf("要素行番号[2] %3d %3d %3d %3d\n"
, area[2][0],area[2][1],area[2][2],area[2][3]);
printf("要素行番号[1] %3d %3d %3d %3d\n"
,area[1][0],area[1][1],area[1][2],area[1][3]);
printf("要素行番号[0] %3d %3d %3d %3d\n"
,area[0][0],area[0][1],area[0][2],area[0][3]);

a = area[0][1];
area[0][1] = area[2][2];
area[2][2] = a;
printf("スワップ処理後\n");
printf("要素列番号   [0]  [1]  [2]  [3]\n");
printf("要素行番号[2] %3d %3d %3d %3d\n"
, area[2][0],area[2][1],area[2][2],area[2][3]);
printf("要素行番号[1] %3d %3d %3d %3d\n"
,area[1][0],area[1][1],area[1][2],area[1][3]);
printf("要素行番号[0] %3d %3d %3d %3d\n"
,area[0][0],area[0][1],area[0][2],area[0][3]);

 

 

return 0;
}

2012.2.4  変数の型

#include<stdio.h>

int main(void)
{
int a;
char c8;
// signed char SC8;
unsigned char uc8;

short int si16;
// signed short int ssi16;
unsigned short int usi16;

int i32;
// signed int is32;
unsigned int usi32;

long int li32;
// signed long int sli32;
unsigned long int uli32;

float f32;
double d64;
long double ld96;

si16 = 32767;
printf("%d %x\n",si16,si16);
si16 = si16 + 1;
printf("%d %x\n",si16,si16);

usi16 = 65435;
printf("%d %x\n" ,usi16, usi16);
usi16 = usi16 + 1;
printf("%d %x\n" ,usi16, usi16);
usi16 = 65535;
printf("%d %x\n" ,usi16, usi16);
usi16 = usi16 + 1;
printf("%d %x\n" ,usi16, usi16);
//16ビット

i32 = 2147483647;
printf("%d %x\n",i32,i32);
i32 = i32 + 1;
printf("%d %x\n",i32,i32);

usi32 = 499999999;
printf("%d %x\n" ,usi32, usi32);
usi32 = usi32 + 1;
printf("%d %x\n" ,usi32, usi32);
usi32 = 4294967295;
printf("%d %x\n" ,usi32, usi32);
usi32 = usi32 + 1;
printf("%d %x\n" ,usi32, usi32);
//32ビット

li32 = 2147483647;
printf("%d %x\n",li32,li32);
li32 = li32 + 1;
printf("%d %x\n",li32,li32);

uli32 = 2174990;
printf("%d %x\n" ,uli32, uli32);
li32 = li32 + 1;
printf("%d %x\n" ,uli32, uli32);
uli32 = 4294967295;
printf("%d %x\n" ,uli32, uli32);
uli32 = uli32 + 1;
printf("%d %x\n" ,uli32, uli32);

f32 = 1.1234;
printf("%f\n",f32);
f32 = f32 - 2.5;
printf("%f\n",f32);

d64 = 1.1234;
printf("%f\n",d64);
d64 = d64 - 2.5;
printf("%f\n",d64);
return 0;

}


2012.1.28  四則演算

#include<stdio.h>

int main(void)
{
/*short a,b,z;

printf("変数aの値を入力(-300~300):");
scanf("%d",&a);
scanf("%d",&b);
z = a + b;
printf("a + b = %d\n" ,z);
*/

//short a,b,z;
//long la,lb,lz;
double da,db,dz;

/*printf("変数aの値を入力(-300~300):");
scanf("%d",&a);
printf("変数aの値を入力(-300~300):");
scanf("%d",&b);
z = a + b;
printf("a + b = %d\n" ,z);

scanf("%d" ,&a);
scanf("%d" ,&b);
z = a - b;
printf("a - b = %d\n" ,z);

scanf("%d",&la);
scanf("%d",&lb);
lz = la * lb;
printf("la * lb = %d\n" ,lz);

scanf("%d" ,&a);
scanf("%d" ,&b);
z = a / b;
printf("a / b = %d\n" ,z);
*/
scanf("%lf" ,&da);
scanf("%lf" ,&db);
dz = da / db;
printf("a / b = %lf\n" ,dz);
return 0;

}


2012.1.21  プリントフの使い方☆

#include<stdio.h>
int main(void)
{
char c;
c = 'N';
printf("文字[%c]コード10進数%d 16進数%x\n",c,c,c);
putchar(c);

c=65;
printf("文字[%c]コード10進数%d 16進数%x\n",c,c,c);
putchar(c);
putchar('\n');

c ='カ';
printf("文字[%c]コード10進数%d 16進数%x\n",c,c,c);
putchar(c);
putchar('\n');

return 0;

}

2012.1.14  実数とプリントフ

#include<stdio.h>

int main(void)
{
float d1, d2;

d1 = 12.11111111111;
d2 = 12.11111111111F;
printf("%15.10f\n",d1 );
printf("%15.10f\n",d2 );

return 0;
}

2012.1.7   簡単な計算

#include<stdio.h>

int main(void)
{
int plus3 = 3, minus3 = -3;
double ddt;

ddt = 2147483647 + plus3;
printf("%.1f\n",ddt);
ddt = 2147483647U + plus3;
printf("%.1f\n",ddt);

ddt = minus3 + 1;
printf("%.1f\n",ddt);
ddt = minus3 + 1U;
printf("%.1f\n",ddt);

ddt = minus3 + 0;
printf("%.1f\n",ddt);
ddt = minus3 + 0U;
printf("%.1f\n",ddt);

return 0;
}

2012.1.1  変数と簡単な関数動き

変数と簡単な関数動き

#include<stdio.h>

void putd_ad(int n);

int main (void)
{
int a = 10,b=0x12345678;
printf("%x\n",&a);
printf("%x\n",&b);
printf("関数呼び出し前\n",a);
putd_ad(a);
printf("関数呼び出し後\n",a);
/*putd_ad(20);*/

printf("%x\n",a);
printf("%x\n",b);

return 0;
}
void putd_ad(int n)
{
printf("数値は%dです\n",n);
n=100;
}

 

写真にあるように基盤などをNCでやるときは
CADがあると便利です★