(1)基本算法

三大類

1、交換排序算法 冒泡(數據量小)-> 快速
2、插入 類排序
3、選擇 類排序

求和 1-1/2+1/3-1/4……+1/99-1/100

int sign=1;
float deno=2.0,sum=1.0,term;
while(deno<=100)
{ 
   sign=-sign;
   term=sign/deno;
   sum=sum+term;
   deno=deno+1;  
}

數據解析 數據排列和位運算
Fibonacci數列 斐波那契數列

算法和通信
五子棋(五子為勝,黑白棋 黑為先(三三、四四連)) 局域網的對戰 (1、server和client兩者的對戰;2、多個client對戰)

五子棋 畫棋盤->數據(根據不同信息設置不同大小類型)
垂直 水平 斜方向(向左傾斜,向右傾斜)

練習:

1、回文查詢 (123321) 讀取一個txt
回文 input 1 2 3 4 4 3 2 1
12344321 abcddcba

#include <stdio.h>
#include "string.h" 

void main(){
    int x,i;
    char str[100]={0};
    gets(str);
    x=strlen(str);
    //printf("%d",x);
    for(i=0;i<=x/2;i++){
        if(str[i]!=str[x-i-1]){
            break;
        }
        //printf("%d",i);
    }
    if(i>x/2)
        printf("yes");
    else
        printf("no");       
}

2、質數查詢
素數 奇數 偶數
1、開根號 while
2、

   for(i=2;i<n/2;++i)
   {
    if(n%i==0)
        {

        }
   }

#include <stdio.h>
#include "string.h" 

void main(){
    int a=0,num=0,i;
    scanf("%d",&num);
    printf("%d",num);
    if(num>2){
        for(i=2;i<num;i++){
            if(num%i==0){
                a++;
            }
        }
    }
    if(a==0)
        printf("yes");
    else
        printf("no");       
}

3、簡單的計算器(加 減 乘 除)

#include <stdio.h>
#include "string.h" 

void main(){
    float a,b,sum;
    char flag;
    char quit=1;
    while(quit!=0){
        printf("Please Enter");
        scanf("%f%c%f",&a,&flag,&b);
        switch(flag){
            case '+':
                sum=a+b;
                break;
            case '-':
                sum=a-b;
                break;
            case '*':
                sum=a*b;
                break;
            case '/':
                sum=a/b;
                break;
            default:
                    break;
        }
        printf("%f+%f=%f\n",a,b,sum);
        printf("Are You quit? Please Enter y/n");
        scanf("%d",&quit);
        printf("\n");
    }
}

4、用遞歸的方式實現字符的顛倒

reverse()
{
   char c;
   scanf("%c",&c);
   if(c!='\n')
   {
     reverse();
     printf("%c",c);
    }
}
int main(){
   reverse();

}

5、實現二進制和十進制的互相轉換

int decimal_binary()
{
   int rem,i=1,binary=0;
   while(n!=0)
   {
      rem=n%2;
      n/=2;
      binary+=rem*i;
      i*=10;
    
    }
   return binary;
}

#include <stdio.h>
int main()
{
    int Type,a,b[10],i=0,c=0;
    printf("請輸入轉換類型,1:十進制轉二進制;2:二進制轉十進制\n");
    scanf("%d",&Type);
    printf("請輸入原數據\n");
    scanf("%d",&a);
    switch(Type)
    {
    case 1:
        while(a!=0)
        {
            b[i]=a%2;
            a/=2;
            i++;
        }
        printf("二進制為:");
        i--;
        for(;i>=0;i--)
            printf("%d",b[i]);
        printf("\n");
        break;
    case 2:
        while(a!=0)
        {
            b[i]=a%10;
            a/=10;
            i++;
        }
        i--;
        for(;i>=0;i--)
            c=c*2+b[i];
        printf("十進制為:%d\n",c);
        break;
    }
}

6、數組 實現多維數組的兩個矩陣的值相加
二維數組

#include <stdio.h>
int main()
{
    int i,j;
    int a[3][3],b[3][3],c[3][3];
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            scanf("%d",&a[i][j]);
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            scanf("%d",&b[i][j]);
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            c[i][j]=a[i][j]+b[i][j];
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            printf("c[%d][%d]=%d\n",i,j,c[i][j]);       
}

7、三天打魚兩天曬網 起始日期:1990.01.01 進行三天打魚兩天曬網,隨機輸入一個具體的天數 得到結果哪天具體做什么

typedef struct date{
   int year;
   int month
   int day;
}date;

int Getdays(date *p)
{
  月份
  int days=0;
  switch(p->month-1)
  {
     case 0:  days=0;break;
     case 1:  days=31;break;
     case 2:  days=31+28;break;
     case 3:  days=31+28+31;break
     case 4:
     case 5:

     
     case 11: days=31+28+31+30+31+30+31+31+30+31+30;break;
  }
  days=days+(p->day-1)+(p->year-1900)*365+(p->year-1988)/4-(p->year-1900)/100+(p->year-1600)/400
  
  年份 閏年特點:四年一閏 百年不閏 四百年再閏
  if((p->year%4==0)&&(p->year%100!=0)||(p->year%400==0)&&(p->month<=2))
  {
     days--;
     return days;
   }

  /*若恰好此年為閏年但月份小于2月,則多加了一天。
    if((p->year%4==0)&&(p->year%100!=0)||(p->year%400==0))
    if(p->month<=2)
  */
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. 結構體和共同體的區別。 定義: 結構體struct:把不同類型的數據組合成一個整體,自定義類型。共同體uni...
    breakfy閱讀 2,143評論 0 22
  • 【1】7,9,-1,5,( ) A、4;B、2;C、-1;D、-3 分析:選D,7+9=16;9+(-1)=8;(...
    Alex_bingo閱讀 19,133評論 1 19
  • 月如跟著母親回到店里。店里人來人往,絡繹不絕。店員和父親忙得不可開交。 她走進柜臺,清點完商品然后給顧客結...
    康蘭居閱讀 177評論 0 1
  • 即便有一千種方式讓自己開心 只消你一個轉身 我,還是會歇斯底里
    DasherM閱讀 415評論 0 0
  • 2017、3.7 覺察日記 事實:由于我的頸椎和腰椎已經好幾次出現狀況趴在床上動不了,過年的時候拍完片,醫生告訴我...
    甌姐姐閱讀 139評論 0 0