1 #include2 #define UPPER 300 3 #define LOWER 0 4 #define STEP 20 5 6 main() 7 { 8 float farh, celsius; 9 10 farh = LOWER;11 celsius = LOWER;12 printf("---C to F---\n");13 while (celsius <= UPPER)14 {15 farh = (9.0*celsius) / 5.0 + 32.0;16 printf("%3.2f %6.2f\n", celsius, farh);17 celsius += STEP;18 }19 printf("------------\n");20 for (celsius = UPPER; celsius >= LOWER; celsius -= STEP)21 {22 printf("%3.2f %6.2f\n", celsius, (9.0*celsius) / 5.0 + 32.0);23 }24 25 farh = LOWER;26 celsius = LOWER;27 printf("---F to C---\n");28 while (farh <= UPPER)29 {30 celsius = 5.0 * (farh-32.0) / 9.0;31 printf("%3.2f %6.2f\n", farh, celsius);32 farh += STEP;33 }34 printf("------------\n");35 for (farh = UPPER; farh >= LOWER; farh -= STEP)36 {37 printf("%3.2f %6.2f\n", farh, 5.0 * (farh-32.0) / 9.0);38 }39 }
1 #include2 3 main() 4 { 5 float c; 6 7 while (c = getchar() != EOF) 8 { 9 printf("getchar != EOF --- %3.1f\n", c);10 printf("EOF is %d\n", EOF);11 }12 }
1-8、1-9、1-10
1 #include2 3 #define OUT 0 4 #define IN 1 5 6 main() 7 { 8 int state = OUT; 9 int c;10 int number = 0;11 12 while ((c = getchar()) != EOF)13 {14 if (((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')))15 {16 putchar(c);17 18 if (state == OUT)19 {20 state = IN;21 number++;22 }23 }24 else25 {26 putchar('\n');27 state = OUT;28 }29 }30 printf("The number of words is: %d\n", number);31 }
1 #include2 3 #define MAXSIZE 10 4 #define Height 10 // 垂直直方图高度 5 #define IN 1 6 #define OUT 0 7 8 main() 9 {10 int wordLength[MAXSIZE], charNumber[128];11 int c, i, j;12 int state = OUT;13 int number;14 15 // 下面两个for是初始化16 for (i = 0; i < MAXSIZE; i++)17 {18 wordLength[i] = 0;19 }20 for (i = 0; i < 128; i++)21 {22 charNumber[i] = 0;23 }24 25 // 下面的while是对输入进行计数26 while ((c = getchar()) != EOF)27 {28 charNumber[c]++; // 存储字符个数29 30 if (((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')))31 {32 if (state == OUT)33 {34 state = IN;35 number = 1;36 }37 else if (state == IN)38 {39 number++;40 }41 }42 else43 {44 if (state == IN)45 {46 state = OUT;47 wordLength[number]++;48 }49 50 }51 }52 53 // 下面一个for是输出水平直方图54 for (i = 0; i < MAXSIZE; i++)55 {56 printf("Length of %d:\t", i);57 for (j = 0; j < wordLength[i]; j++)58 {59 printf("***");60 }61 printf("\n");62 }63 // 下面两个for是输出垂直直方图64 for (i = 0; i < Height; i++)65 {66 for (j = 0; j < MAXSIZE; j++)67 {68 if (wordLength[j] >= (MAXSIZE-i))69 {70 printf("*\t");71 }72 else73 {74 printf(" \t");75 }76 }77 }78 for (i = 0; i < MAXSIZE; i++)79 {80 printf("%d\t", i);81 }82 83 // 输出各字符个数84 for (i = 0; i < 128; i++)85 {86 printf("Number of ASCII---%d: %d\n", i, charNumber[i]);87 }88 }
1 #include2 #define UPPER 300 3 #define LOWER 0 4 #define STEP 20 5 6 float CtoF(float celsius); 7 float FtoC(float farh); 8 9 main()10 {11 float farh, celsius;12 13 farh = LOWER;14 celsius = LOWER;15 printf("---C to F---\n");16 while (celsius <= UPPER)17 {18 19 printf("%3.2f %6.2f\n", celsius, CtoF(celsius));20 celsius += STEP;21 }22 printf("------------\n");23 for (celsius = UPPER; celsius >= LOWER; celsius -= STEP)24 {25 printf("%3.2f %6.2f\n", celsius, CtoF(celsius));26 }27 28 farh = LOWER;29 celsius = LOWER;30 printf("---F to C---\n");31 while (farh <= UPPER)32 {33 printf("%3.2f %6.2f\n", farh, FtoC(farh));34 farh += STEP;35 }36 printf("------------\n");37 for (farh = UPPER; farh >= LOWER; farh -= STEP)38 {39 printf("%3.2f %6.2f\n", farh, FtoC(farh));40 }41 }42 43 float CtoF(float celsius)44 {45 return ((9.0*celsius) / 5.0 + 32.0);46 }47 48 float FtoC(float farh)49 {50 return (5.0 * (farh-32.0) / 9.0);51 }
1 #include2 #define MAXLINE 1000 3 4 int getline(char line[], int maxline); 5 void copy(char to[], char from[]); 6 void reverse(char line[], int len); 7 8 int main() 9 {10 int ml, len;11 char line[MAXLINE];12 char longest[MAXLINE];13 14 ml = 0;15 while ((len = getline(line, MAXLINE)) > 0)16 {17 reverse(line, len);18 if (len > 80)19 {20 printf("%s", line); //1-1721 }22 if (len > ml)23 {24 ml = len;25 copy(longest, line);26 }27 }28 if (ml > 0)29 {30 printf("%s", longest);31 }32 return 0;33 }34 35 int getline(char line[], int maxline)36 {37 int c, i, k;38 int j = 0;39 int flag = 0;40 41 for (i = 0; (c = getchar()) != EOF && c != '\n'; ++i)42 {43 if (c == ' ' || c == '\t')44 {45 if (flag == 0) // flag判断在空格或\t后是否还有其他字符46 {47 flag = 1;48 k = j;49 }50 }51 else52 {53 flag = 0;54 }55 if (i < maxline-2)56 {57 line[j++] = c;58 }59 }60 if (c == '\n')61 {62 if (flag == 1)63 {64 j = k;65 i = k;66 }67 line[j++] = c;68 ++i;69 }70 line[j] = '\0';71 72 return i;73 }74 75 void copy(char to[], char from[])76 {77 int i = 0;78 79 while ((to[i] = from[i]) != '\0')80 {81 ++i;82 }83 }84 85 void reverse(char line[], int len)86 {87 int i = 0;88 int j = len-1;89 int swap;90 91 for (i, j; i < j; i++, j--)92 {93 swap = line[i];94 line[i] = line[j];95 line[j] = swap;96 }97 }
1 #include2 3 #define TABING 8 4 5 main() 6 { 7 int nb = 0; 8 int i, c; 9 10 while ((c = getchar()) != EOF)11 {12 if (c == ' ')13 {14 nb++;15 if (nb == TABING)16 {17 nb = 0;18 printf("\t");19 }20 }21 else if (c == '\t')22 {23 nb = 0;24 printf("\t");25 }26 else27 {28 for (i = 0; i < nb; i++)29 {30 printf(" ");31 }32 nb = 0;33 printf("%c", c);34 }35 }36 }
1 #include2 #include 3 4 void headFile(void); 5 void countDirectly(void); 6 7 main() 8 { 9 headFile();10 countDirectly();11 }12 13 void headFile(void)14 {15 // signed types16 printf("signed char min = %d\n", SCHAR_MIN);17 printf("signed char max = %d\n", SCHAR_MAX);18 printf("signed short min = %d\n", SHRT_MIN);19 printf("signed short max = %d\n", SHRT_MAX);20 printf("signed int min = %d\n", INT_MIN);21 printf("signed int max = %d\n", INT_MAX);22 printf("signed long min = %ld\n", LONG_MIN);23 printf("signed long max = %ld\n", LONG_MAX);24 // unsigned types25 printf("unsigned char max = %u\n", UCHAR_MAX); // %u is output in unsigned int26 printf("unsigned short max = %u\n", USHRT_MAX);27 printf("unsigned int max = %u\n", UINT_MAX);28 printf("unsigned long max = %lu\n", ULONG_MAX); // %lu is output in unsigned long29 }30 31 void countDirectly(void)32 {33 // signed types34 printf("signed char min = %d\n", -(char)((unsigned char) ~0 >> 1));35 printf("signed char max = %d\n", (char)((unsigned char) ~0 >> 1));36 printf("signed short min = %d\n", -(short)((unsigned short) ~0 >> 1));37 printf("signed short max = %d\n", (short)((unsigned short) ~0 >> 1));38 printf("signed int min = %d\n", -(int)((unsigned int) ~0 >> 1));39 printf("signed int max = %d\n", (int)((unsigned int) ~0 >> 1));40 printf("signed long min = %ld\n", -(long)((unsigned long) ~0 >> 1));41 printf("signed long max = %ld\n", (long)((unsigned long) ~0 >> 1));42 // unsigned types43 printf("unsigned char max = %u\n", (unsigned char) ~0);44 printf("unsigned short max = %u\n", (unsigned short) ~0);45 printf("unsigned int max = %u\n", (unsigned int) ~0);46 printf("unsigned long max = %lu\n", (unsigned long) ~0);47 }