编程例子

来源:互联网 发布:淘宝助理5.5版本下载 编辑:程序博客网 时间:2024/05/01 16:00

三大结构

1.九九乘法表

    int i,j;    for(i=1;i<=9;i++){        for(j=1;j<=i;j++)            printf("%d * %d = %2d  ",i,j,i*j);        printf("\n");

2.冒泡法排序

    for(i=1;i<5;i++){        flag=0;        for(j=0;j<5-i;j++){            if(gz[j]>gz[j+1]){                t=gz[j];gz[j]=gz[j+1];gz[j+1]=t;                tt=a[j];a[j]=a[j+1];a[g+1]=tt;                flag=1;        }        if(flag==0) break;//如果本次没有任何数据交换则结束排序处理     }    }

3.选择法排序

    int i,j;//循环控制变量     int k;//记录当前最小值的下标     int a[5];//记录数组的下标     float gz[5];//记录数组数据     float t;//数组数据交换的临时变量     int tt;//下表数据交换的临时数据     for(i=0;i<5;i++){        a[i]=i;        printf("请输入第%d位职工的工资: ",i+1);        scanf("%f",&gz[i]);    }    for(i=0;i<5;i++){        k=i;//如果k改变过,说明有更小数,交换数组中k号和i号的元素         for(j=i+1;j<N;j++){            if(gz[j]<gz[k]) k=j;            if(i!=k){//                t=gz[i];gz[i]=gz[k];gz[k]=t;                tt=a[i];a[k]=a[i];a[i]=tt;            }        }    }

结构体类型

1.今天是今年的第几天

#include <stdio.h>struct date{    int year;    int month;    int day;};int main(){    int i,count=0;    int n[12]={31,28,31,30,31,30,31,31,30,31,30,31};    struct date day;    printf("依次输入年 月 日: ");    scanf("%d%d%d",&day.year,&day.month,&day.day) ;    if(day.year%400==0) ;    else if(day.year%4==0) ;    else n[1]=29;    for(i=1;i<day.month;i++){        count+=n[i-1];    }    count+=day.day;    printf("今天是今年的第%d天。\n",count);      return 0;   }

数组

1.逆序输出输入的字符串

#include <stdio.h>#include <string.h>#define N 60int main(){    int i,j;    char str[N]     printf("输入: ");    fflush(stdin);    gets(str)    printf("\n输出: ");    for(i=0,j=strlen(str)-1;i<j;i++,j--)        str[i]^=str[j]^=str[i]^=str[j];    puts(str);     return 0;}

2.统计字符串字母、空格及其他字符数目

#include <stdio.h>#include <string.h>#define N 200void strcal(char a[N]);int main(){    char a[N];    printf("输入字符串(不含汉字):");    fflush(stdin);    gets(a);    strcal(a);    return 0;}void strcal(char a[N]){    int i;    int count[3]={0,0,0};    for(i=0;i<strlen(a);i++){        if(a[i]>='0'&&a[i]<='9') count[0]++;        else if(a[i]>='A'&&a[i]<='Z'||a[i]>='a'&&a[i]<='z') count[1]++;        else count[2]++;    }    printf("输入的字符串为:%s\n",a);    printf("字母个数为:%d\n",count[1]);    printf("数字个数为:%d\n",count[0]);    printf("其他字符个数为:%d\n",count[2]);}

函数

1.斐波那契数列

#include <stdio.h>#define N 20int main(){    int i,j;    int fib[N]={1,1};    for(i=1;i<N-1;i++)        fib[i+1]=fib[i]+fib[i-1];    printf("斐波那契数列前20项为:");    for(i=0;i<N;i++)        printf("%d ",fib[i]);    return 0;}

2.汉诺塔问题

#include <stdio.h>void hanoi(int n,char A,char B,char C);//把n个金片借助B柱移动到C柱 int main(){    int n;    printf("输入数字n以解决n阶汉诺塔问题:\n");    scanf("%d",&n);    hanoi(n,'A','B','C');    return 0;} void hanoi(int n,char A,char B,char C){    if(n==1) printf("将金块 %d 从 %c 移到 %c \n",n,A,C);    else{        hanoi(n-1,A,C,B);// 将原始柱子的 n-1 块金片移动到借用柱B         printf("将金块 %d 从 %c 移到 %c \n",n,A,C);//将剩下的一块由A移动到目标柱C         hanoi(n-1,B,A,C); //将借用柱B的 n-1 块金片移动到C 6    }}

3.最大公约数,最小公倍数

#include <stdio.h>int gys(int x,int y);int gbs(int x,int y);int main(){    int a,b;    printf("输入两个整数:");    scanf("%d%d",&a,&b);     if(a<0||b<0) printf("输入有误\n");     printf("最大公约数为:%d\n",gys(a,b));    printf("最小公倍数为:%d\n",gbs(a,b));    return 0;}int gys(int x,int y){    int z,i;    if(x<y) x^=y^=x^=y;//如果 x<y,交换 x,y 的值     z=x-y;    if(z==0) return y;//如果差为0,则最大公约数为减数;否则,将被减数换为减数,减数换为差,递归     else gys(y,z);}int gbs(int x, int y){    int i;    for(i=(x>y?x:y);i<=x*y;i++){        if(i%x==0&&i%y==0) return i;    }}

4.杨辉三角

递归实现

#include <stdio.h>#define N 10int yangtri(int i,int j);int main(){    int i,j;    for(i=0;i<N;i++){        for(j=0;j<=i;j++)        printf("%-6d",yangtri(i,j));    printf("\n");    return 0;    }} int yangtri(int i,int j){    if(j==0||j==i) return 1;    else return(yangtri(i-1,j-1)+yangtri(i-1,j));}

二维数组

#include <stdio.h>#define N 10void yangtri(int a[][N],int n);int main(){    int i,j,a[N][N];    yangtri(a,N);    for(i=0;i<N;i++){        for(j=0;j<=i;j++)            printf("%-6d",a[i][j]);        printf("\n");        return 0;    }}void yangtri(int a[][N],int n){    int i,j;    for(i=0;i<N;i++)        for(j=0;j<=i;j++){            if(j==0||j==i) a[i][j]=1;            else a[i][j]=a[i-1][j-1]+a[i-1][j];        }}

指针

1.输入一句话,以‘.’结束,将每个单词首字母大写

#include <stdio.h>#include <string.h>int main(){    int i=0;    char ch,str[80];    void tran(char  *p);    printf("input the sentence(end with '.'): ");    while((ch=getchar())!='.')//将输入以字符串形式存入字符数组str         str[i++]=ch;    str[i++]='.';    str[i]='\0';    fun(str);    puts(str);    return 0;} void fun(char *p){    int flag=1;//初始化flag,标识为空格     while(*p!='\0'){        if(*p==' ') flag=1;        if(*p>='a'&&*p<='z'&&flag==1) {            *p-=32;            flag=0;        }        p++;    }}

2.选择法排序,由小到大

#include <stdio.h>int main(){    int a[8],i,temp,*p1,*p2;    p1=a;    printf("input 8 numbers: ");    for(i=0;i<8;i++)        scanf("%d",p1++);    for(p1=a;p1<a+8-1;p1++){        for(p2=p1+1;p2<a+8;p2++){            if(*p1>*p2){                temp=*p1;                *p1=*p2;                *p2=temp;            }        }    }    for(i=0,p1=a;i<8;i++)        printf("%d ",*p1++);    printf("\n");    return 0;} 

文件操作

1.照片中隐藏机密信息

 #include <stdio.h> #include <string.h> void format();                               //参数为/?时的帮助提示  int copyf(char *txt,char *pho);              //实现将机密信息追加到目标文件的功能  int main(int argc,char *argv[]){    int flag;    if(argc==1) format();    else if((argc==2)&&strcmp(argv[1],"/?")==0) format();    else if(argc==3){        flag=copyf(argv[1],argv[2]);        if(flag==0)            printf("隐藏信息失败!\n");     }     else printf("\n该程序应该携带2个参数!\n");     return 0; } void format(){    printf("\n命令格式为:SourceFile TargetFile\n\n");    printf("SourceFile指记录机密信息的文本文件\n");    printf("TargerFile指被加入机密信息的照片文件\n");}int copyf(char *txt,chat *pho){    FILE *ftxt,*fpho;    char ch;    if((ftxt=fopen(txt,"rb"))==NULL){        printf("%s文件无法打开!\n",txt);        return 0;    }    if((fpho=fopen(pho,"ab"))==NULL){        printf("%s文件无法打开!\n",txt);        return 0;    }    while(!feof(txt)){        ch=fget(txt);        fputc(ch,fpho);    }    printf("%s中的机密信息已经隐藏在照片文件%s中\n",txt,pho);    fclose(ftxt);    fclose(fpho);    return 1;}
0 0
原创粉丝点击