三大類
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數列 斐波那契數列
算法和通信
五子棋(五子為勝西疤,黑白棋 黑為先(三三、四四連)) 局域網的對戰(zhàn) (1次绘、server和client兩者的對戰(zhàn)瘪阁;2、多個client對戰(zhàn))
五子棋 畫棋盤->數據(根據不同信息設置不同大小類型)
垂直 水平 斜方向(向左傾斜邮偎,向右傾斜)
練習:
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泻云、用遞歸的方式實現(xiàn)字符的顛倒
reverse()
{
char c;
scanf("%c",&c);
if(c!='\n')
{
reverse();
printf("%c",c);
}
}
int main(){
reverse();
}
5艇拍、實現(xiàn)二進制和十進制的互相轉換
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卸夕、數組 實現(xiàn)多維數組的兩個矩陣的值相加
二維數組
#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)
*/
}