C言語基礎サンプル


C言語基礎サンプル
一、私の環境
         Eclispe+Cygwin!
 
ネット上には多くの環境構築資料があるはずです.もっと探せばいいです.Eclispeの場合はC/C++版のままで良いです.
 
二、サンプル内容
Cプログラムはその本のすべての例を設計して、後のテーマを含みません--!
 
内容は添付ファイルのmainを先におりることができます.c見て、C_を降りるかどうかを決めるSamples.zip.
その後、C_を実行可能Samples\Release\C_Samples.exe、lsを入力するとリストが表示されます.さらに名前をつけると、その例を走る方法です!
 
三、後記
書くのが下手だから,我慢しなさい.
 
 
main.c
 

  
  
  
  
  1. /* 
  2.  * main.c 
  3.  * 
  4.  *  Created on: 2011-8-28 
  5.  *      Author: Join 
  6.  */ 
  7.  
  8. //  :  
  9. #include <stdio.h> 
  10. #include <string.h> 
  11.  
  12. //  :  
  13. #include "mydef.h" 
  14.  
  15. //  , exe 。 
  16. int main() { 
  17.  
  18.     //   
  19.     int execute(char *in, char *method[], int len); 
  20.  
  21.     printf("This is a C program.
    "
    ); 
  22.  
  23.     //   
  24.     char *method[] = { "eg1_3_sum""eg1_3_max""eg2_2_factorial"
  25.             "eg2_2_is_leap_year""eg2_2_poly_sum""eg2_2_is_prime"
  26.             "eg4_6_triangle_area""eg4_6_to_lower""eg4_6_solve_equation"
  27.             "eg5_5_solve_equation""eg5_5_freight""eg6_6_pi"
  28.             "eg6_6_fibonacci""eg6_6_prime""eg6_6_secret_code"
  29.             "eg7_1_fibonacci""eg7_1_sort""eg7_2_matrix_transpose"
  30.             "eg7_2_matrix_max""eg7_3_count_words""eg7_3_string_max"
  31.             "eg8_4_argument_order""eg8_5_solve_equation""eg8_6_factorial"
  32.             "eg8_6_hanoi""eg8_7_compare""eg8_7_average""eg8_7_indefinite"
  33.             "eg8_7_sort""eg8_7_max""eg9_1_one""eg9_1_two""eg9_1_three"
  34.             "eg9_1_four""eg9_1_five""eg9_3_six""eg10_2_visitInt"
  35.             "eg10_2_compare""eg10_2_swap""eg10_2_sort""eg10_3_arrayOut"
  36.             "eg10_3_inverse""eg10_3_sort""eg10_3_printfValue"
  37.             "eg10_3_printfValues""eg10_3_pValue""eg10_3_average"
  38.             "eg10_3_failure""eg10_4_strcopy""eg10_4_strcopy2"
  39.             "eg10_4_strcopy3""eg10_5_funcpointer""eg10_5_funcparam"
  40.             "eg10_6_failedStu""eg10_6_sortStrArray""eg10_7_pt2pt"
  41.             "eg11_5_voteCount""eg11_6_pt2Struct""eg11_6_arguStruct"
  42.             "eg11_7_simpleList""eg11_7_handleList""eg11_8_union"
  43.             "eg11_9_enum""eg12_2_getBit""eg12_2_moveBit""eg13_4_put"
  44.             "eg13_4_copy""eg13_4_save""eg13_4_read""eg13_5_rewind"
  45.             "eg13_5_fseek" }; 
  46.     //   
  47.     int len = 71; 
  48.  
  49.     char str[20]; 
  50.     do { 
  51.         printf("
    $ "
    ); 
  52.  
  53.         //   
  54.         scanf("%s", str); 
  55.  
  56.         /* 
  57.          *  (
     
  58.          * scanf() getchar()   , ( ) 。 
  59.          *  (
    ) ,
     
  60.          *   

     
  61.          *  , ! fflush(stdin) . 
  62.          */ 
  63.         // fflush(stdin); 
  64.         /* 
  65.          * ps:  scanf  ‘fflush(stdin);’, , , 
  66.          *  C C++  fflush(stdin)。 
  67.          *  ( VC6)  fflush(stdin)  , 
  68.          *  (linux   gcc  )。 
  69.          * 
  70.          *  :1、 ( eg3.c - -) 
  71.          * 2、“ ” ( eg7_3_count_words) 
  72.          */ 
  73.  
  74.         //   
  75.         int result = execute(str, method, len); 
  76.         if (0 == result) { 
  77.             //  0,  
  78.             break
  79.         } else if (-1 == result) { 
  80.             //  -1,  
  81.             printf(" !
    "
    ); 
  82.         } 
  83.     } while (1); 
  84.  
  85.     return EXIT_SUCCESS; 
  86.  
  87. //   
  88. int execute(char *in, char *method[], int len) { 
  89.  
  90.     //  "exit", 0 
  91.     char *exit = "exit"
  92.     if (0 == strcmp(in, exit)) { 
  93.         return 0; 
  94.     } 
  95.  
  96.     int i = 0; 
  97.     //  "ls",  
  98.     char *ls = "ls"
  99.     if (0 == strcmp(in, ls)) { 
  100.         for (i = 0; i < len; i++) { 
  101.             printf("%-22s", method[i]); 
  102.             if (2 == i % 3) { 
  103.                 printf("
    "
    ); 
  104.             } else { 
  105.                 printf(" "); 
  106.             } 
  107.         } 
  108.         if (len % 3 != 0) { 
  109.             printf("
    "
    ); 
  110.         } 
  111.         return 1; 
  112.     } 
  113.  
  114.     //   
  115.     void do_method(int i); 
  116.     //  key ,  
  117.     for (i = 0; i < len; i++) { 
  118.         if (0 == strcmp(in, method[i])) { 
  119.             do_method(i); 
  120.             return 1; 
  121.         } 
  122.     } 
  123.  
  124.     return -1; 
  125.  
  126. //   
  127. void do_method(int i) { 
  128.     switch (i) { 
  129.     case 0: 
  130.         //   
  131.         eg1_3_sum(123, 456); 
  132.         break
  133.     case 1: 
  134.         //  2  
  135.         eg1_3_max(123, 456); 
  136.         break
  137.     case 2: 
  138.         //  1x3x5x7x9x11 
  139.         eg2_2_factorial(11); 
  140.         break
  141.     case 3: 
  142.         //   
  143.         eg2_2_is_leap_year(2008); 
  144.         break
  145.     case 4: 
  146.         //  1-1/2+1/3-1/4+...+1/99-1/100 
  147.         eg2_2_poly_sum(100); 
  148.         break
  149.     case 5: 
  150.         //   
  151.         eg2_2_is_prime(345); 
  152.         break
  153.     case 6: 
  154.         //  ,  
  155.         eg4_6_triangle_area(3, 4, 5); 
  156.         break
  157.     case 7: 
  158.         //  ,  
  159.         eg4_6_to_lower('B'); 
  160.         break
  161.     case 8: 
  162.         //  ax^2+bx+c=0  
  163.         eg4_6_solve_equation(1, -4, 3); 
  164.         break
  165.     case 9: 
  166.         //  ax^2+bx+c=0  
  167.         eg5_5_solve_equation(1, 2, 1); 
  168.         eg5_5_solve_equation(1, 2, 2); 
  169.         eg5_5_solve_equation(2, 6, 1); 
  170.         break
  171.     case 10: 
  172.         //   
  173.         eg5_5_freight(100, 20, 300); 
  174.         break
  175.     case 11: 
  176.         //  PI/4=1-1/3+1/5-1/7+... PI  
  177.         eg6_6_pi(); 
  178.         break
  179.     case 12: 
  180.         //  Fibonacci 40  
  181.         eg6_6_fibonacci(); 
  182.         break
  183.     case 13: 
  184.         //  100~200  
  185.         eg6_6_prime(); 
  186.         break
  187.     case 14: 
  188.         //  : 4  
  189.         eg6_6_secret_code(); 
  190.         break
  191.     case 15: 
  192.         //  Fibonacci  
  193.         eg7_1_fibonacci(); 
  194.         break
  195.     case 16: 
  196.         //   
  197.         eg7_1_sort(); 
  198.         break
  199.     case 17: 
  200.         //   
  201.         eg7_2_matrix_transpose(); 
  202.         break
  203.     case 18: 
  204.         //  3x4 ,  
  205.         eg7_2_matrix_max(); 
  206.         break
  207.     case 19: 
  208.         //   
  209.         eg7_3_count_words(); 
  210.         break
  211.     case 20: 
  212.         //  3 ,  
  213.         eg7_3_string_max(); 
  214.         break
  215.     case 21: 
  216.         //   
  217.         eg8_4_argument_order(); 
  218.         break
  219.     case 22: 
  220.         //  : f(x)=x^3-5x^2+16x-80=0  
  221.         eg8_5_solve_equation(); 
  222.         break
  223.     case 23: 
  224.         //  n! 
  225.         eg8_6_factorial(); 
  226.         break
  227.     case 24: 
  228.         // Hanoi( )  
  229.         eg8_6_hanoi(); 
  230.         break
  231.     case 25: 
  232.         //   
  233.         eg8_7_compare(); 
  234.         break
  235.     case 26: 
  236.         //  score, 10 ,  
  237.         eg8_7_average(); 
  238.         break
  239.     case 27: 
  240.         //   
  241.         eg8_7_indefinite(); 
  242.         break
  243.     case 28: 
  244.         //  10  
  245.         eg8_7_sort(); 
  246.         break
  247.     case 29: 
  248.         //  10  
  249.         eg8_7_max(); 
  250.         break
  251.     case 30: 
  252.         //   
  253.         eg9_1_one(); 
  254.         break
  255.     case 31: 
  256.         //   
  257.         eg9_1_two(); 
  258.         break
  259.     case 32: 
  260.         //   
  261.         eg9_1_three(); 
  262.         break
  263.     case 33: 
  264.         //   
  265.         eg9_1_four(); 
  266.         break
  267.     case 34: 
  268.         //   
  269.         eg9_1_five(); 
  270.         break
  271.     case 35: 
  272.         //  ,  
  273.         eg9_3_six(); 
  274.         break
  275.     case 36: 
  276.         //   
  277.         eg10_2_visitInt(); 
  278.         break
  279.     case 37: 
  280.         //  a b , a b 
  281.         eg10_2_compare(); 
  282.         break
  283.     case 38: 
  284.         //   
  285.         eg10_2_swap(); 
  286.         break
  287.     case 39: 
  288.         //  a,b,c 3 ,  
  289.         eg10_2_sort(); 
  290.         break
  291.     case 40: 
  292.         //   
  293.         eg10_3_arrayOut(); 
  294.         break
  295.     case 41: 
  296.         //  a n  
  297.         eg10_3_inverse(); 
  298.         break
  299.     case 42: 
  300.         //  10  
  301.         eg10_3_sort(); 
  302.         break
  303.     case 43: 
  304.         //   
  305.         eg10_3_printfValue(); 
  306.         break
  307.     case 44: 
  308.         //   
  309.         eg10_3_printfValues(); 
  310.         break
  311.     case 45: 
  312.         //   
  313.         eg10_3_pValue(); 
  314.         break
  315.     case 46: 
  316.         //  average , search i  
  317.         eg10_3_average(); 
  318.         break
  319.     case 47: 
  320.         //  ,  
  321.         eg10_3_failure(); 
  322.         break
  323.     case 48: 
  324.         //  a b( ) 
  325.         eg10_4_strcopy(); 
  326.         break
  327.     case 49: 
  328.         //  a b( ) 
  329.         eg10_4_strcopy2(); 
  330.         break
  331.     case 50: 
  332.         //   
  333.         eg10_4_strcopy3(); 
  334.         break
  335.     case 51: 
  336.         //   
  337.         eg10_5_funcpointer(); 
  338.         break
  339.     case 52: 
  340.         //   
  341.         eg10_5_funcparam(); 
  342.         break
  343.     case 53: 
  344.         //   
  345.         eg10_6_failedStu(); 
  346.         break
  347.     case 54: 
  348.         //  ( )  
  349.         eg10_7_sortStrArray(); 
  350.         break
  351.     case 55: 
  352.         //   
  353.         eg10_7_pt2pt(); 
  354.         break
  355.     case 56: 
  356.         //  :  
  357.         eg11_5_voteCount(); 
  358.         break
  359.     case 57: 
  360.         //   
  361.         eg11_6_pt2Struct(); 
  362.         break
  363.     case 58: 
  364.         //   
  365.         eg11_6_arguStruct(); 
  366.         break
  367.     case 59: 
  368.         //  ,  
  369.         eg11_7_simpleList(); 
  370.         break
  371.     case 60: 
  372.         //   
  373.         eg11_7_handleList(); 
  374.         break
  375.     case 61: 
  376.         //  : ,  
  377.         eg11_8_union(); 
  378.         break
  379.     case 62: 
  380.         //  :5 3  
  381.         eg11_9_enum(); 
  382.         break
  383.     case 63: 
  384.         //  a 4~7  
  385.         eg12_2_getBit(); 
  386.         break
  387.     case 64: 
  388.         //   
  389.         eg12_2_moveBit(); 
  390.         break
  391.     case 65: 
  392.         //  , , “#”  
  393.         eg13_4_put(); 
  394.         break
  395.     case 66: 
  396.         //   
  397.         eg13_4_copy(); 
  398.         break
  399.     case 67: 
  400.         //  4 ,  
  401.         eg13_4_save(); 
  402.         break
  403.     case 68: 
  404.         //  "stu_list" ,  
  405.         eg13_4_read(); 
  406.         break
  407.     case 69: 
  408.         // rewind :  
  409.         eg13_5_rewind(); 
  410.         break
  411.     case 70: 
  412.         // fseek  
  413.         eg13_5_fseek(); 
  414.         break
  415.     } 
  416.