# 1B-10 ###### tags: `一上程設` ### eg1 ``` #include <stdio.h> int sum(int list[], int size) { int i, sum = 0; for(i = 0; i < size; i++) sum += list[i]; return sum; } int main(void) { int a[10] = {1, 2, 3, 4, 5, 6, 7, 8 ,9 , 10}; int s; int *p = a; s = sum(a, 10); printf("The sum is %d\n", s); s = sum(&a[0], 8); //sum(p, 5) printf("The sum is %d\n", s); s = sum(&a[2], 4); //sum(p+2, 4) printf("The sum is %d\n", s); return 0; } ``` ### eg3 ``` #include <stdio.h> int sum_variant_1(int *, int); int sum_variant_2(int *, int); int sum_variant_3(int *, int); int sum_variant_4(int *, int); int main(void) { int a[10] = {1, 2, 3, 4, 5, 6, 7, 8 ,9 , 10}; int s; int *p = a; s = sum_variant_1(p, 10); printf("The sum is %d\n", s); s = sum_variant_2(p, 10); printf("The sum is %d\n", s); s = sum_variant_3(p, 10); printf("The sum is %d\n", s); s = sum_variant_4(p, 10); printf("The sum is %d\n", s); return 0; } int sum_variant_1(int *ptr, int size) { int i, sum = 0; for(i = 0; i < size; i++) sum += *++ptr; return sum; } int sum_variant_2(int *ptr, int size) { int i, sum = 0; for(i = 0; i < size; i++) sum += (*ptr)++; return sum; } int sum_variant_3(int *ptr, int size) { int i, sum = 0; for(i = 0; i < size; i++) sum += ++*ptr; return sum; } int sum_variant_4(int *ptr, int size) { int i, sum = 0; for(i = 0; i < size; i++) sum += --*ptr++; return sum; } ``` ### eg4.1 ``` #include <stdio.h> void showString(char *); int main(void) { char str[5]; showString(fgets(str, 5, stdin)); printf("The string you just enter is:\n%s\n", str); return 0; } void showString(char *str) { for(; *str != '\0';) { printf("%c\t%d\n", *str, *str); str++; } } ``` ### eg4.2 ``` #include <stdio.h> #define N 20 void denewline(char *); int main(void) { char str[N]; fgets(str, 20, stdin); denewline(str); printf("The string is:\n%s\n", str); return 0; } void denewline(char *s) { for(; *s != '\0'; s++) { if(*s == '\n') *s = '\0'; } } ``` ### eg4.3 ``` #include <stdio.h> #include <string.h> #define N 20 void despace(char *); int main(void) { char str[N]; fgets(str, 20, stdin); despace(str); return 0; } void despace(char *s) { int Space = 0; for(; *s == '\0'; s++) { if(*s == ' ') Space++; } memmove(s, s + Space, strlen(s) - Space); printf("%s", s); } ```