includestdio h void swapint a int b int
ソートのプログラム #include<stdio. h> void swap(int *a, int *b) { int tmp; tmp =*a; *a = *b; *b = tmp; } for(i = 0; i < 9; i++){ for(j = i+1; j < 10; j++){ if(data[i] > data[j]){ swap(&data[i], &data[j]); } } } for(i = 0; i < 10; i++) printf("%d ", data[i]); printf("n"); int main (void){ int data[10], i, j; for(i = 0; i < 10; i++){ printf("Input: "); scanf("%d", &data[i]); } return(1); }
ソートのプログラム(課題の解答) n for(i = 0; i < 10; i++){ #include<stdio. h> printf("Input: "); #include <stdlib. h> malloc, free, exitのため scanf("%d", &data[i]); void swap(int *a, int *b) { } int tmp; n-1 配列の大きさの入力 tmp =*a; n for(i = 0; i < 9; i++){ *a = *b; for(j = i+1; j < 10; j++){ *b = tmp; if(data[i] > data[j]){ } swap(&data[i], &data[j]); } int main (void){ } int data[10], i, j; ポインタの宣言 } int *data, n; n printf("n: "); scanf("%d", &n); data=(int *)malloc(sizeof(int)*n); if (data==NULL) { printf("Cannot allocate memory. n"); exit(1); メモリ(配列)の確保 } for(i = 0; i < 10; i++) printf("%d ", data[i]); printf("n"); free(data); メモリの解放 return(1); }
typedef演算子 n 新しいデータ型を定義する typedef 既存のデータ型 新しいデータ型 ¨ 例1 typedef int seisuu; seisuu a; int a; と同じ ¨ 例2 typedef struct hito ningen; ningen a; struct hito a; と同じ
サンプルプログラム3 (ファイルからの入力) 書き込みの場合との相違点 #include<stdio. h> #include<stdlib. h> int main(void){ int data, i, n; FILE *fp; fp=fopen("readtest. txt", "r"); if (fp==NULL) { printf("Cannot open file. n"); exit(1); } fscanf(fp, "%d", &n); for (i=0; i<n; i++) { fscanf(fp, "%d", &data); printf("%dn", data); } fclose(fp); return(0); }
- Slides: 17