for循环打印等腰三角形
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| #include <stdio.h>
int main(void) { int i = 0, j = 0; int line = 0;
printf("line: "); scanf("%d", &line);
for(i = 0; i < line; i++) { for(j = 0; j < line - 1 - i; j++) printf(" "); for(j = 'A' + i; j > 'A'; j--) printf("%c ", j); for(j = 'A'; j < 'A' + 1 + i; j++) printf("%c ", j); printf("\n"); }
return 0; }
|
二维数组的玩法
二维数组的玩法_将二维数组中每个一维数组中的最大值与相应一维数组的最后一位进行交换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h>
#define M 3 #define N 4
void cre(int arr[][N], int arr_hang, int arr_lie) { int i = 0, j = 0;
srand(getpid());
for(i = 0; i < arr_hang; i++) { for(j = 0; j < arr_lie; j++) arr[i][j] = rand() % 100; } }
void pri(int arr[][N], int arr_hang, int arr_lie) { int i = 0, j = 0;
for(i = 0; i < arr_hang; i++) { for(j = 0; j < arr_lie; j++) printf("%2d ", arr[i][j]); printf("\n"); } }
void cmp_1(int arr[][N], int arr_hang, int arr_lie) { int i = 0, j = 0; int max = 0, temp = 0;
for(i = 0; i < arr_hang; i++) { max = 0; for(j = 0; j < arr_lie; j++) { max = arr[i][max] > arr[i][j] ? max : j; } if(max != j - 1) { temp = arr[i][max]; arr[i][max] = arr[i][j - 1]; arr[i][j - 1] = temp; } } }
int main(void) { int arr[M][N] = {0}; int arr_hang = sizeof(arr) / sizeof(arr[0]); int arr_lie = sizeof(arr[0]) / sizeof(arr[0][0]); int arr_num = sizeof(arr) / sizeof(arr[0][0]);
printf("arr_hang = %d, arr_lie = %d, arr_num = %d\n", arr_hang, arr_lie, arr_num);
cre(arr, arr_hang, arr_lie); pri(arr, arr_hang, arr_lie); printf("************分割线1************\n"); cmp_1(arr, arr_hang, arr_lie); pri(arr, arr_hang, arr_lie); printf("************分割线2************\n");
return 0; }
|
打印杨辉三角形
打印杨辉三角形_1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| #include <stdio.h>
#define N 17
int main(void) { int i = 0, j = 0, n = 0; int arr[N][N] = {0};
printf("请输入杨辉三角形的行数:"); scanf("%d", &n);
for(i = 0; i < n; i++) arr[i][0] = 1;
for(i = 1; i < n; i++) for(j = 1; j <= i; j++) arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
for(i = 0; i < n; i++) { for(j = 0; j <= i; j++) printf("%2d ", arr[i][j]);
printf("\n"); }
return 0; }
|
打印杨辉三角形_2
打印杨辉三角形参考
将10进制数转换为二进制数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #include <stdio.h> void itob(int In, int arr[8]); void itob(int In, int arr[8]) { int i = 0, j = 0;
do { arr[i] = In % 2; In = In / 2; i++; j++; }while(In != 0); for(j = i - 1; j >= 0; j--) { printf ("%d",arr[j]); } } int main (void) { int In = 0; int arr[8] = {0}; scanf ("%d",&In);
itob(In, arr);
return 0; }
|
输出素数
例程1-输出1-1000内所有的素数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include <stdio.h> int main (void) { int i = 0, j = 0;
for(i = 2; i < 1000; i++) { for(j = 2; j < i; j++) { if(i % j == 0) break; } if(i == j) printf("%d\n",i); } return 0; }
|
例程2-输出最小值与最大值之间所有的素数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #include <stdio.h> int main (void) { int i = 0, j = 0; int In1 = 0, In2 = 0; int min = 0, max = 0;
scanf ("%d%d",&In1,&In2);
min = In1 < In2 ? In1 : In2; max = In1 > In2 ? In1 : In2;
for(i = min; i < max; i++) { for(j = 2; j < i; j++) { if(i % j == 0) break; } if(i == j) printf ("%d\n",i); } return 0; }
|
重新实现 strcpy strcat strcmp strlen
重新实现 strcpy strcat strcmp strlen _1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| #include <stdio.h>
char *mystrcpy(char *a, const char *b); size_t mystrcmp(const char *a, const char *b); char *mystrcat(char *a, const char *b); size_t mystrlen(char *a);
int main (void) { char a[10] = "good"; char *b = "nice"; printf ("%ld\n",mystrcmp(a,b));
return 0; }
size_t mystrlen(char *a) { int i = 0; for(i = 0; a[i] != '\0'; i++);
return i; }
size_t mystrcmp(const char *a, const char *b) { int i = 0;
for(i = 0; a[i] == b[i] && a[i] != '\0'; i++);
return a[i] - b[i]; }
char *mystrcat(char *a, const char *b) { int i = 0, j = 0; for(i = 0; a[i] != '\0'; i++); for(j = 0; b[j] != '\0'; i++, j++) a[i] = b[j]; a[i] = b[j];
return a; }
char *mystrcpy(char *a,const char *b) { int i = 0;
for(i = 0; b[i] != '\0'; i++) a[i] = b[i]; a[i] = b[i];
return a; }
|
重新实现 strcpy strcat strcmp strlen _2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| #include <stdio.h>
char *mystrcpy(char *a, const char *b); size_t mystrcmp(const char *a, const char *b); char *mystrcat(char *a, const char *b); size_t mystrlen(char *a);
int main(void) { char a[10] = "good"; char *b = "nice";
printf("a = %s\nb = %s\n", a, b); printf("mystrlen(a): %ld\n", mystrlen(a)); printf("mystrlen(b): %ld\n", mystrlen(b)); printf("mystrcmp(a, b): %ld\n", mystrcmp(a, b)); printf("mystrcat(a, b): %s\n", mystrcat(a, b)); printf("a = %s\nb = %s\n", a, b); printf("mystrlen(a): %ld\n", mystrlen(a)); printf("mystrlen(b): %ld\n", mystrlen(b));
printf("\n");
printf("mystrcpy(a, b): %s\n", mystrcpy(a, b)); printf("a = %s\nb = %s\n", a, b); printf("mystrlen(a): %ld\n", mystrlen(a)); printf("mystrlen(b): %ld\n", mystrlen(b)); printf("mystrcmp(a, b): %ld\n", mystrcmp(a, b));
return 0; } size_t mystrlen(char *a) { int i = 0;
for(i = 0; a[i] != '\0'; i++);
return i; }
size_t mystrcmp(const char *a, const char *b) { int i = 0;
for(i = 0; a[i] == b[i] && a[i] != '\0'; i++);
return a[i] - b[i]; }
char *mystrcat(char *a, const char *b) { int i = 0, j = 0; for(i = 0; a[i] != '\0'; i++); for(j = 0; b[j] != '\0'; i++, j++) a[i] = b[j];
a[i] = b[j];
return a; }
char *mystrcpy(char *a, const char *b) { int i = 0; for(i = 0; b[i] != '\0'; i++) a[i] = b[i]; a[i] = b[i];
return a; }
|
函数指针操作实例
第一种用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #include <stdio.h> #include <stdlib.h> void (*pfun)(int data); void myfun(int data) { printf("get data:%d\n",data); } int main(int argc,char *argv[]) { pfun = myfun; (*pfun)(100); return 0; }
|
第二种用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include <stdio.h> #include <stdlib.h> typedef void (*pfun)(int data);
void myfun(int data) { printf("get data:%d\n",data); } int main(int argc,char *argv[]) { pfun p= myfun; p(100); return 0; }
|