编程例子
来源:互联网 发布:淘宝助理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
- 编程例子
- ASP编程经典例子
- MSN API编程例子
- 黑客编程例子
- 多线程编程例子
- Python网络编程例子
- raw socket编程例子
- Framebuffer 编程例子
- Shell 编程简单例子
- shell编程:入门例子
- CMD 控制台 编程 例子
- socket编程代码例子
- 几个Shell编程例子
- CGLIB入门编程例子
- raw socket编程例子
- windows 串口编程例子
- raw socket编程例子
- java网络编程----例子
- 我的maven项目出现java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- ## 关于RSA解密失败记录 ##
- QtConcurrent Qt处理多线程
- 关于MessageBox返回值问题
- html中图片路径拼接
- 编程例子
- 中文文本处理之jieba分词笔记(二)
- lintCode 55:比较字符串
- 【bzoj1305】【CQOI2009】【dance】【跳舞】
- C++异常(3) - 捕获基类与子类的异常
- 关于web开发的一些重点知识
- C#自用DBHelper类
- JS表格组件神器bootstrap table详解(基础版)
- VS2010/MFC编程入门之三十八(状态栏的使用详解)