c考试程序代码大全
C语言经典算法C语言代码大全

C语言经典算法C语言代码大全以下是一个非常简单的C语言代码示例,实现了冒泡排序算法。
冒泡排序是一种简单的排序算法,也是最经典和常用的排序算法之一```c#include <stdio.h>//冒泡排序函数void bubbleSort(int arr[], int n)for (int i = 0; i < n-1; i++)for (int j = 0; j < n-i-1; j++)//如果前一个元素大于后一个元素,交换它们if (arr[j] > arr[j+1])int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}int maiint n, i;printf("请输入数组中元素的个数:");scanf("%d", &n);int arr[n];printf("请输入数组元素:");for (i = 0; i < n; i++)scanf("%d", &arr[i]);}bubbleSort(arr, n);printf("排序后的数组为:");for (i = 0; i < n; i++)printf("%d ", arr[i]);}return 0;```这段代码实现了一个简单的冒泡排序算法。
用户可以输入一个整数数组,然后使用冒泡排序对数组进行排序,并打印出结果。
注意事项:1.该代码需要在支持C语言的编译器或集成开发环境中运行。
2. 在代码中使用了`scanf`函数来从用户输入获取数组元素,请确保输入的格式匹配。
3.该代码中的冒泡排序算法是一种基本的算法,适用于小规模数据,对于大规模数据可能效率较低,不适用于高性能要求的场景。
C语言程序设计 入门源代码代码集合【精选文档】

#include 〈stdio.h〉void print_star(void){printf("*****************\n"); }void print_welcome(void){printf(”C language,welcome!\n");}void main(){print_star();print_welcome();print_star();getchar();}演示2#include "stdio。
h"int sum(int i,int j){return(i + j);}void main(){int n1,n2;printf("input 2 numbers:\n”);scanf("%d%d”,&n1,&n2);printf("the sum = %d\n",sum(n1,n2));getchar();}演示3#include "stdio。
h"int maxnum(int,int,int);main(){int a,b,c;printf("Please enter 3 numbers:\n");scanf(”%d,%d,%d”,&a,&b,&c);printf(”Maxnum is %d\n",maxnum(a,b,c));}int maxnum(int x,int y,int z){int max=x;if(y>max)max = y;if(z>max)max = z;return max;}演示4#include 〈stdio。
h〉int s1(int n){int j,s;s=0;for(j=1;j<=n;j++)s=s+j;return s;}int sum(int n){int i,s=0;for(i=1;i<=n;i++)s=s+s1(i);return s;}void main(){int n;printf(”n:”);scanf(”%d",&n);printf("s=%d\n”,sum(n));}演示5#include <stdio.h〉void func(int n){int i;for(i=n-1;i〉=1;i--)n=n+i;printf("n=%d\n",n);}void main(){int n;printf("Input n:");scanf("%d”,&n);func(n);printf(”n=%d\n",n);}演示6#include <stdio。
C 经典程序代码大全

C 经典程序代码大全#include const float PI=3.1416; //声明常量(只读变量)PI为3.1416 float fCir_L(float); //声明自定义函数fCir_L()的原型 float fCir_S(float); //声明自定义函数fCir_S()的原型 //以下是main()函数 main(){ float r,l,s; //声明3个变量 cout>r; //键盘输入l=fCir_L(r); //计算圆的周长,赋值给变量l s=fCir_S(r); //计算圆的面积,赋值给变量s cout=0.0)//如果参数大于0,则计算圆的周长 z=2*PI*x; return(z); //返回函数值 } //定义计算圆的面积的函数fCir_S() float fCir_S(float x){ float z=-1.0; //声明局部变量 if (x>=0.0)//如果参数大于0,则计算圆的面积 z=PI*x*x; return(z); //返回函数值 } /* Program: P1-2.CPP Written by: Hap Date written: 02:11:10 */#include void main(void){ double s1,s2,s3; s1=1.5; /* 对变量s1赋值*/ cout main(){ double r=1.0; cout>r; //键盘输入 l=2*3.1416*r; //计算圆的周长,赋值给变量l cout //包含iostream.h头文件 void main(){ //输出字符常量.变量和字符串 char c1= A ; cout //包含iostream.h头文件 main(){ //输入输出字符 char c; cin>>c; cout>n; cout>x; cout>n; cout>c>>n>>x; cout //包含iostream.h头文件 main() { //声明整型变量 int a,b; //从键盘上为整型变量赋值cout>a; cout>b; //整型数的算术运算 cout //包含iostream.h 头文件 main(){ //声明变量,并初始化 int a=010,b=10,c=0X10; //以进制形式显示数据 cout>a; cout>b; cout>c; cout //包含iostream.h头文件 #include // iomanip.h头文件包含setprecision()的定义 main(){ //float型变量的声明.输入.计算和输出 float fx,fy; cout>fx; cout>fy; cout>dx; cout>dy; cout //包含iostream.h 头文件 main(){ //字符类型变量的声明 char c1= A ; char c2; //字符数据的运算及输出 c2=c1+32; cout>c1>>c2; cout //包含iostream.h头文件 main(){ char c1= \a ,TAB= \t ; //阵铃一声 cout //包含iostream.h头文件 main(){ //声明bool变量,并初始化 boolflag1=false,flag2=true; //输出布尔常量和变量 cout0; //存放关系运算结果 cout const double PI=3.1416; //声明常量(const变量)PI为3.1416 main(){ //声明3个变量 double r,l,s; //输入圆的半径 cout>r; //计算圆的周长 l=2*PI*r; cout main(){ //定义枚举类型,并指定其枚举元素的值 enum color { RED=3, YELLOW=6, BLUE=9 }; //声明枚举变量a和b,并为枚举变量a赋初值 enum color a=RED; color b; //合法,与C语言不同 // 输出枚举常量 cout const double PI=3.1416; //声明常量(const变量)PI为3.1416 main(){ //声明3个变量 double r=3,l,s; //计算圆的周长l=2*PI*r; cout main(){ //变量声明 char c; double x,y; //测试自增 cout main(){ int a=3, b=2; //输出关系表达式 coutb)=b)main(){ float a=3.5,b=2.1,c=0; cout=0 //显示a,b,c的值 cout main(){ //用 sizeof 计算各类种常量的字节长度 cout main(){ //声明变量语句中使用顺序运算 int x, y; //计算中使用顺序运算 x=50; y=(x=x-5, x/5); cout main(){ //测试表达式类型的转换 int n=100,m; double x=3.791,y; cout main(){ float a,b,s; cout>a>>b; //利用cin从键盘上为变量a,b 赋值 s=a; if (a main(){ int x,y; cout>x; if (x main(){ int a,b,c; int smallest; cout>a>>b>>c; if (a main() { int score; //从键盘上输入分数 cout>score; //用带else if的条件语句判断处理 if (score100){ cout=90)cout=80)cout=70)cout=60)cout main(){ int n; cout>n; if (n>=0 //输入数据 cout>a; cout>b; //找出较大值 Max=a>b?a:b; cout main(){ int a,b; //输入数据 cout>a; cout>b; //除法判断 if (b!=0 char c1; cin>>x>>c1>>y; //c1。
C程序代码大全

//根据半径计算圆的周长和面积#include <iostream.h>const float PI=3.1416; //声明常量(只读变量)PI为3.1416float fCir_L(float); //声明自定义函数fCir_L()的原型float fCir_S(float); //声明自定义函数fCir_S()的原型//以下是main()函数main(){float r,l,s; //声明3个变量cout<<"r="; //显示字符串cin>>r; //键盘输入l=fCir_L(r); //计算圆的周长,赋值给变量ls=fCir_S(r); //计算圆的面积,赋值给变量scout<<"l="<<l; //显示计算结果cout<<"\ns="<<s;}//定义计算圆的周长的函数fCir_L()float fCir_L(float x){float z=-1.0; //声明局部变量if (x>=0.0) //如果参数大于0,则计算圆的周长z=2*PI*x;return(z); //返回函数值}//定义计算圆的面积的函数fCir_S()float fCir_S(float x){float z=-1.0; //声明局部变量if (x>=0.0) //如果参数大于0,则计算圆的面积z=PI*x*x;return(z); //返回函数值}/* Program: P1-2.CPPWritten by: HapDate written: 02:11:10*/#include <iostream.h>void main(void){double s1,s2,s3;s1=1.5; /* 对变量s1赋值*/cout<<"s1="<<s1<<endl;/* 对变量s2赋值*/ s2=2.5;cout<<"s2="<<s2<<endl;s3= /* 对变量s3赋值*/ 3.5;cout<<"s3="<<s3<<endl;cout<<"s1+s2+s3="<<s1+s2+s3<<endl; //计算并显示//计算并显示cout<<"s1+s2+s3="<<s1+s2+s3<<endl;}#include <iostream.h>main(){double r=1.0;cout<<"r="<<r<<endl;double l;l=2*3.1416*r; //计算圆的周长,赋值给变量l cout<<"l="<<l<<endl; //显示圆的周长double s=3.1416*r*r; //计算圆的面积,赋值给变量s cout<<"s="<<s<<endl; //显示圆的面积cout<<"r="; //显示提示输入的信息cin>>r; //键盘输入l=2*3.1416*r; //计算圆的周长,赋值给变量l cout<<"l="<<l<<endl; //显示圆的周长s=3.1416*r*r;cout<<"s="<<s<<endl; //显示圆的面积}#include <iostream.h> //包含iostream.h头文件void main(){//输出字符常量、变量和字符串char c1='A';cout<<'W';cout<<c1<<endl;cout<<"This is a test."<<endl;cout<<"------------------"<<endl;//输出整型常量、变量和表达式int n=100;cout<<10;cout<<n;cout<<2*n<<endl; //输出整型表达式cout<<"------------------"<<endl;//输出浮点型常量、变量和表达式double pi=3.1415926,r=10.0,s=pi*r*r;cout<<pi<<endl;cout<<r;cout<<s;cout<<2*r*pi<<endl; //输出浮点型表达式cout<<"------------------"<<endl;//一个cout可以输出多项数据cout<<'W'<<" "<<c1<<endl;cout<<"This is a test."<<endl;cout<<"pi="<<pi<<" r="<<r<<" s="<<s<<endl;}#include <iostream.h> //包含iostream.h头文件main(){//输入输出字符char c;cin>>c;cout<<"c="<<c<<endl;//输入输出整型数据int n;cin>>n;cout<<"n="<<n<<endl;//输入输出浮点型数据double x;cin>>x;cout<<"x="<<x<<endl;//输入提示cout<<"n=";cin>>n;cout<<"n="<<n<<endl;//多项输入cout<<"c n x"<<endl;cin>>c>>n>>x;cout<<"c="<<c<<" n="<<n<<" x="<<x<<endl; }#include <iostream.h> //包含iostream.h头文件main(){//声明整型变量int a,b;//从键盘上为整型变量赋值cout<<"a=";cin>>a;cout<<"b=";cin>>b;//整型数的算术运算cout<<a<<"+"<<b<<"="<<a+b<<endl;cout<<a<<"-"<<b<<"="<<a-b<<endl;cout<<a<<"*"<<b<<"="<<a*b<<endl;cout<<a<<"/"<<b<<"="<<a/b<<endl;cout<<a<<"%"<<b<<"="<<a%b<<endl;//测试溢出short n=32767,m; //n取short类型的最大值cout<<"n="<<n<<endl;m=n+1; //引起溢出cout<<"n+1="<<m<<endl;}#include <iostream.h> //包含iostream.h头文件main(){//声明变量,并初始化int a=010,b=10,c=0X10;//以十进制形式显示数据cout<<"DEC:";cout<<" a="<<a;cout<<" b="<<b;cout<<" c="<<c<<endl;//以八进制形式显示数据cout<<"OCT:";cout<<oct; //指定八进制输出cout<<" a="<<a;cout<<" b="<<b;cout<<" c="<<c<<endl;//以十六进制形式显示数据cout<<"HEX:";cout<<hex; //指定十六进制输出cout<<" a="<<a;cout<<" b="<<b;cout<<" c="<<c<<endl;//八、十和十六进制数混合运算并输出cout<<"a+b+c=";cout<<dec; //恢复十进制输出cout<<a+b+c<<endl;//测试八、十和十六进制输入cout<<"DEC:a="; cin>>a;cout<<"OCT:b="; cin>>b;cout<<"HEX:a="; cin>>c;cout<<"DEC:"<<dec<<endl; //指定十进制输出cout<<"a="<<a<<endl;cout<<"b="<<b<<endl;cout<<"c="<<c<<endl;}#include <iostream.h> //包含iostream.h头文件#include<iomanip.h> // iomanip.h头文件包含setprecision()的定义main(){//float型变量的声明、输入、计算和输出float fx,fy;cout<<"fx=";cin>>fx;cout<<"fy=";cin>>fy;cout<<fx<<"+"<<fy<<"="<<fx+fy<<endl;cout<<fx<<"-"<<fy<<"="<<fx-fy<<endl;cout<<fx<<"*"<<fy<<"="<<fx*fy<<endl;cout<<fx<<"/"<<fy<<"="<<fx/fy<<endl<<endl;//cout<<fx<<"%"<<fy<<"="<<fx%fy<<endl; Error!//double型变量的声明、输入、计算和输出float dx,dy;cout<<"dx=";cin>>dx;cout<<"dy=";cin>>dy;cout<<dx<<"+"<<dy<<"="<<dx+dy<<endl;cout<<dx<<"-"<<dy<<"="<<dx-dy<<endl;cout<<dx<<"*"<<dy<<"="<<dx*dy<<endl;cout<<dx<<"/"<<dy<<"="<<dx/dy<<endl<<endl;//cout<<fx<<"%"<<fy<<"="<<fx%fy<<endl; Error!//测试float和double类型数据的有效位fx=10.0;fy=6.0;float fz=fx/fy;dx=10.0;dy=6.0;double dz=dx/dy;cout<<"fz=";cout<<setprecision(20)<<fx<<"/"<<fy<<"="<<fz<<endl;cout<<"dz=";cout<<setprecision(20)<<dx<<"/"<<dy<<"="<<dz<<endl<<endl;;//float型溢出float x=3.5e14;cout<<"x="<<x<<endl;cout<<"x*x="<<x*x<<endl;cout<<"x*x*x="<<x*x*x<<endl;}#include <iostream.h> //包含iostream.h头文件main(){//字符类型变量的声明char c1='A';char c2;//字符数据的运算及输出c2=c1+32;cout<<"c1="<<c1<<endl;cout<<"c2="<<c2<<endl;//输出字符及ASCII码cout<<c1<<" : "<<int(c1)<<endl;cout<<c2<<" : "<<int(c2)<<endl;cout<<'$'<<" : "<<int('$')<<endl;//输入字符cout<<"c1 c2"<<endl;cin>>c1>>c2;cout<<"c1="<<c1<<" c2="<<c2<<endl;}#include <iostream.h> //包含iostream.h头文件main(){char c1='\a',TAB='\t';//阵铃一声cout<<c1<<endl;//使用水平制表符cout<<1<<TAB<<2<<TAB<<3<<TAB<<4<<endl;//使用双引号cout<<"He said \"Thank you\"."<<endl;//使用回车换行cout<<"abc\n"<<"def"<<'\n';}#include <iostream.h> //包含iostream.h头文件main(){//声明bool变量,并初始化bool flag1=false,flag2=true;//输出布尔常量和变量cout<<"false:"<<false<<endl;cout<<"true: "<<true<<endl;cout<<"flag1="<<flag1<<endl;cout<<"flag2="<<flag2<<endl;//布尔变量的赋值和输出int x=1;flag1=x>0; //存放关系运算结果cout<<"flag1="<<flag1<<endl;flag2=flag1; //bool类型变量相互赋值cout<<"flag2="<<flag2<<endl;//布尔变量超界处理flag1=100;cout<<"flag1="<<flag1<<endl;flag2=-100;cout<<"flag2="<<flag2<<endl;}#include <iostream.h>const double PI=3.1416; //声明常量(const变量)PI为3.1416 main(){//声明3个变量double r,l,s;//输入圆的半径cout<<"r=";cin>>r;//计算圆的周长l=2*PI*r;cout<<"l="<<l<<endl;//计算圆的面积s=PI*r*r;cout<<"s="<<s<<endl;}#include<iostream.h>main(){//定义枚举类型,并指定其枚举元素的值enum color {RED=3,YELLOW=6,BLUE=9};//声明枚举变量a和b,并为枚举变量a赋初值enum color a=RED;color b; //合法,与C语言不同// 输出枚举常量cout<<"RED="<<RED<<endl;cout<<"YELLOW="<<YELLOW<<endl;cout<<"BLUE="<<BLUE<<endl;//枚举变量的赋值和输出b=a;a=BLUE;cout<<"a="<<a<<endl;cout<<"b="<<b<<endl;//a=100; 错误!//a=6 也错误!//枚举变量的关系运算b=BLUE; // 枚举变量的赋值运算cout<<"a<b="<<(a<b)<<endl;}#include <iostream.h>const double PI=3.1416; //声明常量(const变量)PI为3.1416 main(){//声明3个变量double r=3,l,s;//计算圆的周长l=2*PI*r;cout<<"l="<<l<<endl;//计算圆的面积s=PI*r*r;cout<<"s="<<s<<endl;//验证赋值误差int il,is;il=l;is=s;cout<<"il="<<il<<endl;cout<<"is="<<is<<endl;}#include <iostream.h>main(){//变量声明char c;double x,y;//测试自增cout<<"++E and E++ :"<<endl;c='B';cout<<"c="<<++c<<endl; //输出c=Cc='B';cout<<"c="<<c++<<endl; //输出c=Bx=1.5;y=5+ ++x; //加号后的空格不能少cout<<"y="<<y<<endl; //输出y=7.5x=1.5;y=5+x++;cout<<"y="<<y<<endl; //输出y=6.5cout<<"--------------------"<<endl;//测试自减cout<<"--E and E-- :"<<endl;c='B';cout<<"c="<<--c<<endl; //输出c=Ac='B';cout<<"c="<<c--<<endl; //输出c=Bx=1.5;y=5+--x;cout<<"y="<<y<<endl; //输出y=5.5x=1.5;y=5+x--;cout<<"y="<<y<<endl; //输出y=6.5}#include <iostream.h>main(){int a=3, b=2;//输出关系表达式cout<<a<b<<endl;cout<<(a<b)<<(a>b)<<(a>=b)<<(a==b)<<(a!=b)<<endl;bool flag=2*a<b+10;cout<<"flag="<<flag;}#include <iostream.h>main(){float a=3.5,b=2.1,c=0;cout<<"a="<<a<<" b="<<b<<" c="<<c<<endl;//与运算cout<<"a&&b="<<(a&&b)<<endl;//输出1cout<<"a&&c="<<(a&&c)<<endl;//输出0//或运算cout<<"a||b="<<(a||b)<<endl;//输出1cout<<"a||c="<<(a||c)<<endl;//输出1//非运算cout<<"!a="<<!a<<endl<<"!c="<<!c<<endl;//输出0 1//关系运算和逻辑运算bool flag=a>=0 && a<=5; //变量a在[0,5]区间内cout<<"a=>0 && a<=5="<<flag<<endl;//输出1//算术运算、关系运算和逻辑运算cout<<"a+5>2*b+2||a<b+3="<<(a+5>2*b+2||a<b+3)<<endl;//输出1 }#include <iostream.h>main(){//按位与运算cout<<"24&12="<<(24&12)<<endl;//按位异或运算cout<<"24^12="<<(24^12)<<endl;//按位或运算cout<<"24|12="<<(24|12)<<endl;//按位取反运算cout<<"~24="<<(~24)<<endl;//左移位运算cout<<"5<<3="<<(5<<3)<<endl;cout<<"-5<<3="<<(-5<<3)<<endl;//右移位运算cout<<"5>>3="<<(5>>3)<<endl;cout<<"-5>>3="<<(-5>>3)<<endl;}#include <iostream.h>main(){int a=1,b=1,c=3;//显示a,b,c的值cout<<"a="<<a<<" b="<<b<<" c="<<c<<endl;//计算显示(1) b+=a+2*c%5; 的结果b+=a+2*c%5; //相当于表达式语句b=b+(a+2*c%5);cout<<"(1) b="<<b<<endl;//计算显示(2) a<<=c-2*b; 的结果a=1,b=1,c=3;a<<=c-2*b; // 相当于表达式语句a=a<<(c-2*b);cout<<"(2) a="<<a<<endl;//计算显示(3) a*=b=c=3;的结果a=1,b=1,c=3;a*=b=c=3; //相当于语句组c=3;b=c;a=a*b;cout<<"(3) a="<<a<<" b="<<b<<" c="<<c<<endl;//计算显示(4) a+=b+=c;的结果a=1,b=1,c=3;a+=b+=c; //相当于语句组b=b+c; a=a+b;cout<<"(4) a="<<a<<" b="<<b<<" c="<<c<<endl;//计算显示(5) a-=b=++c+2;的结果a=1,b=1,c=3;a-=b=++c+2; //相当于语句组++c;b=b+c+2;a=a-b;cout<<"(5) a="<<a<<" b="<<b<<" c="<<c<<endl;}#include <iostream.h>main(){//用sizeof 计算各类种常量的字节长度cout<<"sizeof('$')="<<sizeof('$')<<endl;cout<<"sizeof(1)="<<sizeof(1)<<endl;cout<<"sizeof(1.5)="<<sizeof(1.5)<<endl;cout<<"sizeof(\"Good!\")="<<sizeof("Good!")<<endl;//用sizeof 计算各类型变量的字节长度int i=100;char c='A';float x=3.1416;double p=0.1;cout<<"sizeof(i)="<<sizeof(i)<<endl;cout<<"sizeof(c)="<<sizeof(c)<<endl;cout<<"sizeof(x)="<<sizeof(x)<<endl;cout<<"sizeof(p)="<<sizeof(p)<<endl;//用sizeof 计算表达式的字节长度cout<<"sizeof(x+1.732)="<<sizeof(x+1.732)<<endl;//用sizeof 计算各类型的字节长度cout<<"sizeof(char)="<<sizeof(char)<<endl;cout<<"sizeof(int)="<<sizeof(int)<<endl;cout<<"sizeof(float)="<<sizeof(float)<<endl;cout<<"sizeof(double)="<<sizeof(double)<<endl;//用sizeof 计算数组的字节长度char str[]="This is a test.";int a[10];double xy[10];cout<<"sizeof(str)="<<sizeof(str)<<endl;cout<<"sizeof(a)="<<sizeof(a)<<endl;cout<<"sizeof(xy)="<<sizeof(xy)<<endl;//用sizeof 计算自定义类型的长度struct st {short num;float math_grade;float Chinese_grade;float sum_grade;};st student1;cout<<"sizeof(st)="<<sizeof(st)<<endl;cout<<"sizeof(student1)="<<sizeof(student1)<<endl; }#include <iostream.h>main(){//声明变量语句中使用顺序运算int x, y;//计算中使用顺序运算x=50;y=(x=x-5, x/5);cout<<"x="<<x<<endl;cout<<"y="<<y<<endl;}#include <iostream.h>main(){//测试表达式类型的转换int n=100,m;double x=3.791,y;cout<<"n*x="<<n*x<<endl;//赋值类型转换m=x;y=n;cout<<"m="<<m<<endl;cout<<"y="<<y<<endl;//强制类型转换cout<<"int(x)="<<int(x)<<endl;cout<<"(int)x="<<(int)x<<endl;cout<<"int(1.732+x)="<<int(1.732+x)<<endl;cout<<"(int)1.732+x="<<(int)1.723+x<<endl;cout<<"double(100)="<<double(100)<<endl;}#include <iostream.h>main(){float a,b,s;cout<<"a b"<<endl;cin>>a>>b; //利用cin从键盘上为变量a,b 赋值s=a;if (a<b) {s=b; //if语句中只有这一个语句,可省略花括号}s=s*s; //变量s中保存a,b中较大的一个数的平方cout<<"s="<<s;}#include <iostream.h>main(){int x,y;cout<<"x=";cin>>x;if (x<=0) { //满足条件执行y=2*x;cout<<"y="<<y; //输出结果}else { //不满足条件执行y=x*x;cout<<"y="<<y; //输出结果}}#include <iostream.h>main(){int a,b,c;int smallest;cout<<"a b c"<<endl;cin>>a>>b>>c;if (a<=b) //外层条件语句{if (a<=c) //内层条件语句smallest=a;elsesmallest=c;}else{if (b<=c) //内层条件语句smallest=b;elsesmallest=c;}cout<<"Smallest="<<smallest<<endl;}#include <iostream.h>main(){int score;//从键盘上输入分数cout<<"score=";cin>>score;//用带else if的条件语句判断处理if (score<0 || score>100){cout<<"The score is out of range!"<<endl;}else if (score>=90)cout<<"Your grade is a A."<<endl;else if (score>=80)cout<<"Your grade is a B."<<endl;else if (score>=70)cout<<"Your grade is a C."<<endl;else if (score>=60)cout<<"Your grade is a D."<<endl;elsecout<<"Your grade is a E."<<endl;}#include <iostream.h>main(){int n;cout<<"n=";cin>>n;if (n>=0 && n<=100 &&n%2==0)cout<<"n="<<n<<endl;elsecout<<"The "<<n<<" is out of range!"<<endl; }#include <iostream.h>main(){int a,b,Max;//输入数据cout<<"a=";cin>>a;cout<<"b=";cin>>b;//找出较大值Max=a>ba:b;cout<<"Max="<<Max<<endl;}#include <iostream.h>main(){int a,b;//输入数据cout<<"a=";cin>>a;cout<<"b=";cin>>b;//除法判断if (b!=0 && a%b==0) {cout<<b<<" divides "<<a<<endl;cout<<"a/b="<<a/b<<endl;}elsecout<<b<<" does not divide "<<a<<endl;}#include <iostream.h>main(){//x,y 为操作数,c为运算符int x,y,z;char c1;cin>>x>>c1>>y; //c1//多路选择语句选择不同表达式计算语句switch(c1) {case '+':cout<<x<<"+"<<y<<"="<<x+y<<endl;break;case '-':cout<<x<<"-"<<y<<"="<<x-y<<endl;break;case '*':cout<<x<<"*"<<y<<"="<<x*y<<endl;break;case '/':cout<<x<<"/"<<y<<"="<<x/y<<endl;break;case '%':cout<<x<<"%"<<y<<"="<<x%y<<endl;break;default :cout<<"Wrong !"<<endl; //当不符合上述情况时执行本子句}}#include<iostream.h>float x=365.5; //声明全局变量main() {int x=1,y=2;double w=x+y;{double x=1.414,y=1.732,z=3.14;cout<<"inner:x="<<x<<endl;cout<<"inner:y="<<y<<endl;cout<<"inner:z="<<z<<endl;cout<<"outer:w="<<w<<endl;cout<<"::x="<<::x<<endl; //访问重名的全局变量}cout<<"outer:x="<<x<<endl;cout<<"outer:y="<<y<<endl;cout<<"outer:w="<<w<<endl;//cout<<"inner:z="<<z<<endl;无效cout<<"::x="<<::x<<endl; //访问重名的全局变量}#include<iostream.h>main() {//显示1,2,3 (10)for(int i=1;i<=10;i++)cout<<i<<" ";cout<<endl;//显示10,9,8 (1)for(int j=10;j>=1;j--)cout<<j<<" ";cout<<endl;//显示1,3,5 (9)for(int k=1;k<=10;k=k+2)cout<<k<<" ";cout<<endl;//显示ABC...Zfor(char c='A';c<='Z';c++)cout<<c;cout<<endl;//显示0,0.1,0.2...1.0for(float x=0;x<=1.0;x=x+0.1)cout<<x<<" ";cout<<endl;//显示0,0.1,0.2...1.0for(float x1=0;x1<=1.0+0.1/2;x1=x1+0.1) cout<<x1<<" ";cout<<endl;//计算s=1+2+3...+100int s=0;for(int n=1;n<=100;n++)s=s+n;cout<<"s="<<s<<endl;}#include<iostream.h>main(){//计算s=1+2+3...+100int s=0,n=1;while(n<=100) {s=s+n;n++;}cout<<"s="<<s<<endl;//累加键盘输入的数据double x,sum=0.0;cout<<"x=";cin>>x;while(x!=0) {sum+=x;cout<<"x=";cin>>x;}cout<<"sum="<<sum<<endl;}#include<iostream.h>main(){//计算s=1+2+3...+100int s=0,n=0;do {n++;s+=n;}while(n<100);cout<<"s="<<s<<endl;//累加键盘输入的数据double x,sum=0.0;do {cout<<"x=";cin>>x;sum+=x;} while(x!=0);cout<<"sum="<<sum<<endl;}#include<iostream.h>main(){//计算和打印打印乘法九九表for (int i=1;i<=9;i++) {cout<<i;for (int j=1;j<=9;j++)cout<<'\t'<<i<<"*"<<j<<"="<<i*j;cout<<endl;}}#include<iostream.h>main(){int x,sum=0;//定义标号L1L1: cout<<"x=";cin>>x;if (x==-1)goto L2; //无条件转移语句,转到L2语句处elsesum+=x;goto L1; //无条件转移语句,转到L1语句处//定义标号L2L2: cout<<"sum="<<sum<<endl;}#include<iostream.h>main(){//累加键盘输入的数据double x,sum=0.0;while(1) {cout<<"x=";cin>>x;if (x<=0) break;sum+=x;}cout<<"sum="<<sum<<endl;}#include<iostream.h>main(){int i;for (i=1;i<=20;i++){if (i%3==0) //能被3 整除的整数,返回进行下次循环continue;cout<<i<<" ";}cout<<endl;}#include<iostream.h>main(){//声明数组和变量int a[5],i,sum;double avg;//从键盘上循环为数组赋值for (i=0;i<5;i++) {cout<<"a["<<i<<"]=";cin>>a[i];}//直接显示数组元素cout<<a[0]<<a[1]<<a[2]<<a[3]<<a[4]<<endl;//利用for循环显示数组各元素的值for (i=0;i<5;i++)cout<<a[i]<<" ";cout<<endl;//计算数组元素之和,并显示计算结果sum=a[0]+a[1]+a[2]+a[3]+a[4];cout<<"sum="<<sum<<endl;//利用循环计算数组的累加和for (sum=0,i=0;i<5;i++)sum+=a[i];//显示累加和及平均值cout<<"sum="<<sum<<endl;avg=sum/5.0;cout<<"avg="<<avg<<endl;}#include<iostream.h>main(){int i,max,index,a[5];//从键盘上为数组赋值for (i=0;i<=4;i++){cout<<"a["<<i<<"]=";cin>>a[i];}// 利用循环遍历数组,找出最大值的元素及其下标max=a[0];for (i=0;i<=4;i++){if (max<a[i]){max=a[i];index=i;}}cout<<"\nMax="<<max<<" index="<<index;}#include<iostream.h>#define size 5main(){//声明变量int i,j;float t,a[size];//从键盘上为数组赋值for (i=0;i<size;i++){cout<<"a["<<i<<"]=";cin>>a[i];}//对数组按从小到大顺序排序for (i=0;i<size-1;i++)for (j=i+1;j<size;j++)if (a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}//显示排序结果for (i=0;i<size;i++)cout<<a[i]<<" ";cout<<endl;//输入要查找的数据int value;int found; //找到为1,否则为0int low,high,mid;for (i=1;i<=3;i++) {cout<<"value=";cin>>value;//二分法查找数组afound=0;low=0;high=size-1;while(low<=high){mid=(high+low)/2;if (a[mid]==value){found=1;break;}if (a[mid]<value)low=mid+1;elsehigh=mid-1;}if (found)cout<<"The valu found at:a["<<mid<<"]="<<a[mid]<<endl;elsecout<<"The "<<value<<" is not found!"<<endl;}}#include<iostream.h>main(){//声明变量int i,j;float t,a[5];//从键盘上为数组赋值for (i=0;i<=4;i++){cout<<"a["<<i<<"]=";cin>>a[i];}//对数组按从大到小顺序排序for (i=0;i<=3;i++)for (j=i+1;j<=4;j++)if (a[i]<=a[j]){t=a[i];a[i]=a[j];a[j]=t;}//显示排序结果for (i=0;i<=4;i++)cout<<a[i]<<" ";}#include<iostream.h>main(){//声明二维数组及变量int a[2][3],i,j;//从键盘上为数组a赋值for (i=0;i<2;i++)for (j=0;j<3;j++){cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];}//显示数组afor (i=0;i<2;i++) {for (j=0;j<3;j++){cout<<a[i][j]<<" ";}cout<<endl;}//找出该数组的最大元素及其下标int h,l,Max=a[0][0];for (i=0;i<2;i++) {for (j=0;j<3;j++){if (Max<a[i][j]) {Max=a[i][j];h=i;l=j;}}}cout<<"Max:"<<"a["<<h<<"]["<<l<<"]="<<a[h][l]<<endl; }#include<iostream.h>main(){//声明字符数组和变量char str[6];int i;//从键盘上输入字符串cout<<"str=";cin>>str;cout<<str<<endl;//按数组和下标变量两种方式显示字符数组cout<<str<<endl;for (i=0;i<6;i++)cout<<str[i];。
计算机等级考试二级C语言:程序设计实战代码

2.程序源代码:
/* zheng int is divided yinshu*/
main()
{
int n,i;
printf("\nplease input a number:\n");
scanf("%d",&n);
printf("%d=",n);
}
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
printf(" ");
for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
}
题目:要求输出国际象棋棋盘。
1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
2.程序源代码:
#include "stdio.h"
main()
printf("%d belongs to %c",score,grade);
}
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
2.程序源代码:
main()
{
int a,b,num1,num2,temp;
(完整版)c语言初学必背代码

//1.成绩判断#include <stdio.h>int main(){//成绩int score;printf("请输入你的成绩:\n");scanf("%d", &score);//判断if(score >=0 && score < 60){printf("不及格\n");}else if(60 <= score && score < 80){printf("中等\n");}else if(80 <= score && score < 100){printf("优秀\n");}else{printf("输入错误!\n");}}//2.计算1到100的和#include <stdio.h>int main(){int sum = 0;//存结果变量int i;for(i=1;i <= 100;i++){sum = sum + i;}printf("sum=%d\n", sum);}//3.最大公约数#include <stdio.h>//求m,n的最大公约数int main(){int m, n;int i, k;printf("请输入两个数:");scanf("%d %d", &m, &n);//三元运算符找较小的那个k = m < n ? m : n;//从较小的那个数倒着往前找for(i=k; i>=1; i--){//这是公约数if((m % i == 0) && (n % i ==0)){printf("最大公约数是%d\n", i);break;//跳出for循环}}}//4.最小公倍数#include <stdio.h>//求m,n的最小公倍数int main(){int m, n;int max, min;//m,n中较大,较小的那个int k;//max, 2*max, 3*max, .....printf("请输入两个数:");scanf("%d %d", &m, &n);//也可以交换m,n,保证m小n大max = m > n ? m : n;min = m < n ? m : n;k = max;//从max开始while(k % min != 0){k += max;//每次倍增}printf("最小公倍数是%d\n", k); }//5.金字塔#include <stdio.h>//金字塔int main(){int i;//外层int j;//内层for(i=1;i<=10;i++){//当前是在第i行//先补空格10-i个for(j=1;j<=10-i;j++){printf(" ");}//再打2i-1个*for(j=1;j<=2*i-1;j++){printf("*");}printf("\n");}}//6.九九乘法表#include <stdio.h>//打印九九乘法表int main(){int i,j;for(i=1;i<=9;i++)//外层一定是9行{for(j=1; j<=i; j++)//内层第几行走几遍{printf("%d*%d=%d ", i, j, i*j);}printf("\n");}}//7.百钱买百鸡#include <stdio.h>/**百钱买百鸡,类似1,2,5凑100银币问题*/int main2(){int i,j;//公鸡,母鸡个数for(i=0; i<=20; i++)//公鸡{for(j=0; j<=33; j++)//母鸡{if( (15*i + 9*j + (100-i-j)) == 300){printf("公鸡%d,母鸡%d,小鸡%d\n", i, j, 100-i-j);}}}}//1,2,5凑100银币问题int main3(){int count = 0;//情况数int i,j;//5分个数,2分个数for(i=0; i<=20; i++)//5分个数{for(j=0; j<=50; j++)//2分个数{if( ( 5*i + 2*j ) <= 100 ){count++;printf("%d: 5分%d个,2分%d 个,1分%d个\n", count, i, j, 100-5*i-2*j);}}}}//8.一维数组的最大值、最小值、平均值#include <stdio.h>#define N 10//宏定义常量int main(){int i;//下标索引int max, min;double sum = 0;//累加和int a[N] = {58, 58, 96, 100, 25, 55, 66, 88, 99, 77};max = a[0];//假设第一个最大min = a[0];//假设第一个最小for(i=1; i<N; i++){if(a[i] > max)//比最大值还大max = a[i];//你才是最大if(a[i] < min)//比最小值还小min = a[i];//你才是最小sum += a[i];}printf("max=%d, min=%d\n", max, min);printf("average = %.2lf\n", sum/N);}//9.二维数组的最大值、最小值、平均值#include <stdio.h>int main(){int i; //第几行int j; //第几列int a[3][4] = { {1,2,3,4}, {5,-6,7,8}, {9,19,39,0}};int max = a[0][0];//假设你最大int min = a[0][0];//假设你最小double average;//平均值double sum = 0; //总和for(i=0; i<3; i++)//必定3行{for(j=0; j<4; j++)//必定4列{printf("%5d ", a[i][j]);sum += a[i][j];if(a[i][j] > max)max = a[i][j];if(a[i][j] < min)min = a[i][j];}printf("\n");}average = sum / (3*4);printf("max=%d, min=%d, avg=%.2lf\n", max, min, average);}//10.二维数组转置#include <stdio.h>//二维数组转置:行变列,列变行int main(){int i; //第几行int j; //第几列int a[3][4] = { {1,2,3,4}, {5,-6,7,8}, {9,19,39,0}};int b[4][3];for(i=0; i<3; i++){for(j=0; j<4; j++){printf("%5d", a[i][j]);}printf("\n");}//矩阵转置for(i=0; i<3; i++){for(j=0; j<4; j++){b[j][i] = a[i][j];}}for(i=0; i<4; i++){for(j=0; j<3; j++){printf("%5d", b[i][j]);}printf("\n");}}//11.冒泡排序#include <stdio.h>#define N 10//宏定义常量int main(){int i;//下标索引int j;int tmp;//临时交换用int a[N] = {58, 58, 96, 100, 25, 55, 66, 88, 99, 77};//外层循环一定是N-1for(i=0; i<N-1; i++){//两两交换,大的往后走for(j=0; j<N-i-1; j++){//交换if(a[j] > a[j+1]){tmp = a[j];a[j] = a[j+1];a[j+1] = tmp;}}}for(i=0; i<N; i++){printf("%d ", a[i]);;}printf("\n");}//12.结构冒泡排序#include <stdio.h>//结构定义,用户自定义类型typedef struct student{char sno[20];//学号char name[20];//姓名int age;//年龄char gender;//性别char tel[20];//电话};int main(){int i;int j;double sum = 0;struct student tmp;//两两交换临时用;//结构数组struct student team[5];for(i=0; i<5; i++){printf("请输入第%d个队员的信息:\n", i+1);scanf("%s %s %d %c %s", team[i].sno, team[i].name, &team[i].age, &team[i].gender, team[i].tel);}//按年龄冒泡排序for(i=0; i<5; i++){for(j=0; j<5-i-1; j++){//两两交换if(team[j].age > team[j+1].age){tmp = team[j];team[j] = team[j+1];team[j+1] = tmp;}}}//取值printf("%-12s %-10s %-5s %-5s %-15s\n", "学号", "姓名", "年龄", "性别", "电话");for(i=0; i<5; i++){printf("%-12s %-10s %-5d %-5c %-15s\n", team[i].sno, team[i].name, team[i].age, team[i].gender, team[i].tel);}}//13.结构数组找年龄最大值#include <stdio.h>//结构定义,用户自定义类型typedef struct student{char sno[20];//学号char name[20];//姓名int age;//年龄char gender;//性别char tel[20];//电话};int main(){int i;struct student tmp;//找最大临时用//结构数组struct student team[5];for(i=0; i<5; i++){printf("请输入第%d个队员的信息:\n", i+1);scanf("%s %s %d %c %s", team[i].sno, team[i].name, &team[i].age, &team[i].gender, team[i].tel);}//取值printf("%-12s %-10s %-5s %-5s %-15s\n ", "学号", "姓名", "年龄", "性别", "电话");for(i=0; i<5; i++){printf("%-12s %-10s %-5d %-5c %-15s\ n", team[i].sno, team[i].name, team[i].age, team[i].gender, team[i].tel);}//找学号最大的那一个tmp = team[0];for(i=1; i<5; i++){if(strcmp(team[i].sno,tmp.sno) >0 ){tmp = team[i];}}printf("学号最大的队员如下:\n");printf("%-12s %-10s %-5d %-5c %-15s\ n", tmp.sno, , tmp.age, tmp.gender, tmp.tel);}//14.文件读写#include <stdio.h>#include <stdlib.h>//结构定义,用户自定义类型typedef struct student{char sno[20];//学号char name[20];//姓名int age;//年龄char gender;//性别char tel[20];//电话};//文件读写int main(){struct student * s, * p1;//个数未知FILE * fp;int i, n = 0;char buf[1024];//fgets缓冲区//打开文件fp = fopen("e:\\test.txt", "r");while(fgets(buf, 1024, fp) != NULL)n++;fclose(fp);//指向一个可以存储n个student结构的内存空间s = (struct student *)malloc(sizeof(struct student) * n);p1 = s;//不要动头位置s的值//打开文件fp = fopen("e:\\test.txt", "r");for(i=0; i<n; i++){//从文件中读入一行fscanf(fp, "%s %s %d %c %s", p1->sno, p1->name, &p1->age, &p1->gender, p1->tel);p1++;}fclose(fp);p1 = s;for(i=0; i<3; i++){printf("%s %s %d %c %s\n", p1->sno, p1->name, p1->age, p1->gender, p1->tel);}free(s);}//15.输入三角形三边长计算周长和面积#include<stdio.h>#include<math.h>int main(){double area,perimeter,s,a,b,c;printf("请输入三边长a b c:");scanf("%lf%lf%lf",&a,&b,&c);if((a+b>c) && (a+c>b) && (b+c>a)){s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));perimeter=a+b+c;printf("area=%.2f,perimeter=%.2f\ n",area,perimeter);}else{printf("三边长无法构成三角形。
C语言考试代码

//1:身高预测/*#include <stdio.h>main(){char sex; //孩子的性别char sports; //是否喜欢体育运动char diet; //是否有良好的饮食习惯double myHeight; //孩子身高double faHeight; //父亲身高double moHeight; //母亲身高printf("Are you a boy(M) or a girl(F)?");scanf("%c", &sex);printf("Please input your father's height(cm):");scanf("%lf", &faHeight);printf("Please input your mother's height(cm):");scanf("%lf", &moHeight);printf("Do you like sports(Y/N)?");scanf("%c", &sports); //用以下两条语句来避免上一个回车符被读入sports=getchar();printf("Do you have a good habit of diet(Y/N)?");scanf(" %c", &diet);//%c前加一个空格避免上一个回车符被读入if (sex == 'M' || sex == 'm')myHeight = (faHeight + moHeight) * 0.54;elsemyHeight = (faHeight * 0.923 + moHeight) / 2.0;if (sports == 'Y' || sports == 'y')myHeight = myHeight * (1 + 0.02);if (diet == 'Y' || diet == 'y')myHeight = myHeight * (1 + 0.015);printf("Your future height will be %lf(cm)\n", myHeight);}*///2三角形构成判断./*#include <stdio.h>main(){int a,b,c;printf("Please input 三条边(用','隔开):");scanf("%d,%d,%d", &a, &b, &c);if(((a+b)<c)||((a+c)<b)||((b+c)<a))printf("不构成三角形\n");else if((a==b&&b==c))printf("等边三角形\n");elseif((a==b&&b!=c)||(a==c&&a!=b)||(b==c&&b!=a))printf("等腰三角形\n");elseprintf("不等边\n");}*///3统计奇数和偶数个数./*#include <stdio.h>main(){int counteven = 0; //偶数int countodd = 0; //奇数int number;char c;printf("Please input several integers seperated by blank. Press ENTER to end your input.\n");do{ scanf("%d%c", &number,&c);if ( number%2 == 0 )counteven++;else countodd++;}while(c!='\n');printf("You have input %d even numbers!\n", counteven);printf("You have input %d odd numbers!\n", countodd);}*///4.打印五角星/*#include<stdio.h>main(){int i,j;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++){printf(" ");}for(j=1;j<=2*i-1;j++){printf("*");}printf("\n");}}*//*#include <stdio.h>main(){ int num,ge,shi,bai,temp;scanf("%d",&num);if(num>=100 && num<=999){ge=num%10;shi=(num%100)/10;bai=num/100;temp=ge*ge*ge+shi*shi*shi+bai*bai*bai;if(temp==num) //判定是不是水仙花数{printf("我是水仙花");}else{printf("我不是水仙花");}}else{printf("data error");}}*///实验四//2.判断素数/*#include<stdio.h>int IsPrime(int i);main(){int x;printf("请你输入一个大于2的整数:");scanf("%d",&x);if(IsPrime(x)==1){printf("%d是素数。
计算机二级C常考程序代码

1.找出2*M整形二维数字哦中最大元素中最大元素的值,并返回此值int fun (int a[][M]){int i,j,max=a[0][0];for(i=0;i<2;i++)for(j=0;j<M;j++)if(max<a[i][j])max=a[i][j];return max;}55.用来求出数组的最大元素在数组中的下标并放在k所指的存储单元中int fun(int *s,int t,int *k){int i;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i]) *k=i;return s[*k];}30.找出一维数组元素中最大的值及其所在下标,并通过形参传回。
n为个数,max为最大值,index放最大值下标。
void fun(int a[],int n, int *max, int *d){int i;*max=a[0];*d=0;for(i=0;i<n;i++)if(*max<a[i]){*max=a[i];*d=i;}}56.编写一个函数void fun(int tt[]M[N],int pp[N])tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。
void fun(int tt[M][N],int pp[N]){int i,j,max;for(j=0;j<N;j++){max=tt[0][j];for(i=0;i<M;i++)if(tt[i][j]>max)max=tt[i][j];pp[j]=max;}}48求Fiboncci数列中大于t的最小数,结果由函数返回int fun( int t){int f0 = 0, f1 = 1, f ;do {f = f0 + f1 ;f0 = f1 ;f1 = f ;} while(f < t) ;return f ;}2.只含*和字母,删除所有*号void fun( char *a ){int i,j=0;for(i=0;a[i]!='\0';i++)if(a[i]!='*')a[j++]=a[i];a[j]='\0';}12.除了字符串前导的*号外,将其他*号全部删除void fun( char *a ){int i=0;char *p=a;while(*p&&*p=='*'){a[i]=*p;i++;p++;}while(*p){if(*p!='*'){a[i]=*p;i++;}p++;}a[i]='\0';}14只删除尾部的*号,前面和中间的*号不动。
C语言经典代码考试自用

C语言经典代码考试自用C语言是一种通用的高级程序设计语言,经常被用于系统软件和应用软件的开发。
在学习C语言的过程中,熟练掌握经典的代码是非常重要的。
本文将介绍一些C语言经典代码,希望对于C语言的学习和考试有所帮助。
1. Hello World程序Hello World程序是C语言学习的第一步,也是非常经典的代码。
它的目的是输出一行字符串"Hello World!"到屏幕上。
以下是Hello World程序的代码:```c#include <stdio.h>int main() {printf("Hello World!");return 0;}```2. 求两个整数的最大公约数最大公约数是指能同时整除两个数的最大正整数。
以下是求两个整数的最大公约数的代码:```c#include <stdio.h>int gcd(int a, int b) {if (b == 0) {return a;} else {return gcd(b, a % b);}}int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("最大公约数为:%d", gcd(num1, num2));return 0;}```3. 判断一个数是否为素数素数是只能被1和自身整除的数,大于1的自然数中除了2以外都是奇数。
以下是判断一个数是否为素数的代码:```c#include <stdio.h>#include <stdbool.h>bool isPrime(int num) {if (num <= 1) {return false;}for (int i = 2; i * i <= num; i++) { if (num % i == 0) {return false;}}return true;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d是素数", num);} else {printf("%d不是素数", num);}return 0;}```4. 查找数组中的最大元素以下是查找数组中的最大元素的代码:```c#include <stdio.h>int findMax(int arr[], int n) {int max = arr[0];for (int i = 1; i < n; i++) {if (arr[i] > max) {max = arr[i];}}return max;int main() {int arr[] = {5, 2, 8, 10, 1};int n = sizeof(arr) / sizeof(arr[0]);printf("数组中的最大元素为:%d", findMax(arr, n));return 0;}```5. 根据用户输入的数字打印对应的星号图案以下是根据用户输入的数字打印对应的星号图案的代码:```c#include <stdio.h>void printPattern(int num) {for (int i = 1; i <= num; i++) {for (int j = 1; j <= i; j++) {printf("* ");}printf("\n");}int main() {int num;printf("请输入一个数字:");scanf("%d", &num);printPattern(num);return 0;}```以上是一些C语言经典代码的示例,涵盖了基本输入输出、循环、递归等常用语法和算法。
(完整版)C语言代码大全

摘自宋鲁生程序设计大赛乘法口诀表#include <stdio.h>#include <conio.h>void main(void){int i,j,x,y;clrscr();printf("\n\n * * * 乘法口诀表* * * \n\n");x=9;y=5;for(i=1;i<=9;i++){gotoxy(x,y);printf("%2d ",i);x+=3;}x=7;y=6;for(i=1;i<=9;i++){gotoxy(x,y);printf("%2d ",i);y++;}x=9;y= 6;for(i=1;i<=9;i++){for(j=1;j<=9;j++){gotoxy(x,y);printf("%2d ",i*j);y++;}y-=9;x+=3;}printf("\n\n");}用一维数组统计学生成绩#include <stdio.h>void main(){char SelectKey,CreditMoney,DebitMoney;while(1){do{clrscr();puts("=========================");puts("| Please select key: |");puts("| 1. Quary |");puts("| 2. Credit |");puts("| 3. Debit |");puts("| 4. Return |");puts("=========================");SelectKey = getch();}while( SelectKey!='1' && SelectKey!='2' && SelectKey!='3' &&SelectKey!='4' );switch(SelectKey){case '1':clrscr();puts("================================");puts("| Your balance is $1000. |");puts("| Press any key to return... |");puts("================================");getch();break;case '2':do{clrscr();puts("==================================");puts("| Please select Credit money: |");puts("| 1. $50 |");puts("| 2. $100 |");puts("| 3. Return |");puts("==================================");CreditMoney = getch();}while( CreditMoney!='1' && CreditMoney!='2' && CreditMoney!='3' );switch(CreditMoney){}break; case '3':do{ case '1':clrscr();puts("=========================================");puts("| Your Credit money is $50,Thank you! |");puts("| Press any key to return... |");puts("=========================================");getch();break;case '2':clrscr();puts("==========================================");puts("| Your Credit money is $100,Thank you! |");puts("| Press any key to return... |");puts("==========================================");getch();break;case '3':break;clrscr();puts("====================================");puts("| Please select Debit money: |");puts("| 1. $50 |");puts("| 2. $100 |");puts("| 3. $500 |");puts("| 4. $1000 |");puts("| 5. Return |");puts("====================================");DebitMoney = getch();}while( DebitMoney!='1' && DebitMoney!='2' && DebitMoney!='3' &&DebitMoney!='4' && DebitMoney!='5' );switch(DebitMoney){case '1':clrscr();puts("===========================================");puts("| Your Debit money is $50,Thank you! |");puts("| Press any key to return... |");puts("===========================================");getch();break;case '2':clrscr();puts("===========================================");puts("| Your Debit money is $100,Thank you! |");puts("| Press any key to return... |");puts("===========================================");getch();break;case '3':clrscr();puts("===========================================");puts("| Your Debit money is $500,Thank you! |");puts("| Press any key to return... |");puts("===========================================");getch();break;case '4':clrscr();puts("===========================================");puts("| Your Debit money is $1000,Thank you! |");puts("| Press any key to return... |");puts("===========================================");getch();break;case '5':break;}break;case '4':clrscr();puts("================================");puts("| Thank you for your using! |");puts("| Good bye! |");puts("================================");return;}}模拟ATM(自动柜员机)界面#include <stdio.h> void main(){int Password=0,Number=0,price=58,i=0;while( Password != 1234 ){if( i >= 3 )return;}i=0; i++;puts("Please input Password: "); scanf("%d",&Password);while( Number!=price ){do{puts("Please input a number between 1 and 100: ");scanf("%d",&Number);printf("Your input number is %d\n",Number);}while( !(Number>=1 && Number<=100) );if( Number >= 90 ){printf("Too Bigger! Press any key to try again!\n");}else if( Number >= 70 && Number < 90 ){printf("Bigger!\n");}else if( Number >= 1 && Number <= 30 ){printf("Too Small! Press any key to try again!\n");}else if( Number > 30 && Number <= 50 ){}else{printf("Small! Press any key to try again!\n");if( Number == price ){printf("OK! You are right! Bye Bye!\n");}else if( Number < price ){printf("Sorry,Only a little smaller! Press any key to try again!\n");}else if( Number > price ){printf(" Sorry, Only a little bigger! Press any key to try again!\n");}getch();}}用二维数组实现矩阵转置/* 用二维数组实现矩阵的转置*/#include <stdio.h>#define ROW 3#define COL 4main(){int matrixA[ROW][COL],matrixB[COL][ROW];int i,j; clrscr();printf("Enter elements of the matrixA,");printf("%d*%d:\n",ROW,COL);for( i=0; i<ROW; i++ ){for( j=0; j<COL; j++ ){scanf("%d",&matrixA[i][j]);}}for( i=0; i<ROW; i++ ){for( j=0; j<COL; j++ ){matrixB[j][i] = matrixA[i][j];}}printf("MatrixB,");printf("%d*%d:\n",COL,ROW);for( i=0; i<COL; i++ ){for( j=0; j<ROW; j++ ){printf("%8d",matrixB[i][j]);}printf("\n");}printf("\n Press Any Key to Quit... \n");getch();}求解二维数组的最大/最小元素#define MAXN 20int a[MAXN][MAXN];main(){int min, /* 存储最小值*/max; /* 存储最大值*/int row,col,n;clrscr();printf("Please input the order of the matrix:\n");/* 输入方阵的阶次*/ scanf("%d",&n);printf("Please input the elements of the matrix,\n from a[0][0] to a[%d][%d]:\n",n-1,n-1);for(row=0;row<n;row++)for(col=0;col<n;col++)scanf("%d",&a[row][col]);for(min=a[0][0],row=0;row<n;row++){/* 从每行选出最大数*/for(max=a[row][0],col=1;col<n;col++)/*从row 行选出最大数*/if(max<a[row][col])max=a[row][col];if(min>max)/* 保存至row 行的最小数*/min=max;}printf("The minimum of maximum number is %d\n",min);for(max=a[0][0],row=0;row<n;row++){/* 每行选出最小数*/for(min=a[row][0],col=1;col<n;col++)/* 从row 行选出最小数*/ if(min>a[row][col])min=a[row][col];if(max<min)/*保存至row 行的最大数*/max=min;}printf("The maximum of minimum numbers is %d\n",max);printf("\nPress any key to quit...\n");getch();}利用数组求前n 个质数#define N 50main(){int primes[N];int pc,m,k; clrscr();printf("\n The first %d prime numbers are:\n",N);primes[0]=2;/*2 是第一个质数*/pc =1;/*已有第一个质数*/m =3;/*被测试的数从3 开始*/while(pc<N){/*调整m 使它为下一个质数*/k=0;while(primes[k]*primes[k]<=m)if(m%primes[k]==0){/*m 是合数*/m+=2;/*让m 取下一个奇数*/k=1;/*不必用primes[0]=2 去测试m,所以k 从一开始*/}elsek++;/*继续用下一个质数去测试*/primes[pc++]=m;m+=2;/*除2 外,其余质数均是奇数*/}/*输出primes[0]至primes[pc-1]*/for(k=0;k<pc;k++)printf("%4d",primes[k]);printf("\n\n Press any key to quit...\n ");getch();}编制万年历#include "stdio.h"long int f(int year,int month){/*f(年,月)=年-1,如月<3;否则,f(年,月)=年*/if(month<3) return year-1;else return year;} long int g(int month){/*g(月)=月+13,如月<3;否则,g(月)=月+1*/if(month<3) return month+13;else return month+1;} long int n(int year,int month,int day){/*N=1461*f(年、月)/4+153*g(月)/5+日*/return 1461L*f(year,month)/4+153L*g(month)/5+day;} int w(int year,int month,int day){/*w=(N-621049)%7(0<=w<7)*/return(int)((n(year,month,day)%7-621049L%7+7)%7);} int date[12][6][7];int day_tbl[ ][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};main(){int sw,leap,i,j,k,wd,day;int year;/*年*/char title[]="SUN MON TUE WED THU FRI SAT";clrscr();printf("Please input the year whose calendar you want to know: ");/*输入年*/scanf("%d%*c",&year);/*输入年份值和掠过值后的回车*/sw=w(year,1,1);leap=year%4==0&&year%100||year%400==0;/*判闰年*/for(i=0;i<12;i++)for(j=0;j<6;j++)for(k=0;k<7;k++)date[i][j][k]=0;/*日期表置0*/for(i=0;i<12;i++)/*一年十二个月*/for(wd=0,day=1;day<=day_tbl[leap][i];day++){/*将第i+1 月的日期填入日期表*/date[i][wd][sw]=day;sw=++sw%7;/*每星期七天,以0 至6 计数*/if(sw==0) wd++;/*日期表每七天一行,星期天开始新的一行*/} printf("\n|==================The Calendar of Year %d=====================|\n|",year);for(i=0;i<6;i++){/*先测算第i+1 月和第i+7 月的最大星期数*/for(wd=0,k=0;k<7;k++)/*日期表的第六行有日期,则wd!=0*/wd+=date[i][5][k]+date[i+6][5][k];wd=wd?6:5;printf("%2d %s %2d %s |\n|",i+1,title,i+7,title);for(j=0;j<wd;j++){printf(" ");/*输出四个空白符*//*左栏为第i+1 月,右栏为第i+7 月*/for(k=0;k<7;k++)if(date[i][j][k])printf("%4d",date[i][j][k]);else printf(" ");printf(" ");/*输出十个空白符*/for(k=0;k<7;k++)if(date[i+6][j][k])printf("%4d",date[i+6][j][k]);else printf(" ");printf(" |\n|");}/*scanf("%*c");/*键入回车输出下一个月的日历*/}puts("=================================================================|") ;puts("\n Press any key to quit...");getch();}对数组元素排序rest(int a[], int n){int i,low,high,t; for(i=0,low=0,high=n-1;i<=high;) {if(a[i]>0){/*a[i]与a[high]交换,随之high 减1*/t=a[i];a[i]=a[high];a[high]=t;high--;}else if(a[i]==0)i++; /* 掠过该元素*/else{/*a[i]与a[low]交换,随之low 增1, i 增1*/t=a[i];a[i]=a[low];a[low]=t;low++; i++;}}}int s[]={8,4,0,-1,6,0,-5};main(){int i;clrscr();printf("\n The arry before rest is:\n");for(i=0;i<sizeof(s)/sizeof(s[0]);i++)printf("%4d",s[i]);rest(s,sizeof(s)/sizeof(s[0]));printf("\n The arry after rest is:\n");for(i=0;i<sizeof(s)/sizeof(s[0]);i++)printf("%4d",s[i]);printf("\n Press any key to quit...\n");getch();}任意进制数的转换/* 函数trans 将无符号整数n 翻译成d(2<=d<=16)进制表示的字符串s */ #define M sizeof(unsigned int)*8int trans(unsigned n, int d, char s[]){static char digits[] ="0123456789ABCDEF"; /* 十六进制数字的字符*/char buf[M+1];int j, i = M;if(d<2||d>16){s[0]='\0'; /* 不合理的进制,置s 为空字符串*/return 0; /* 不合理的进制,函数返回0 */}buf[i]='\0';do{buf[--i]=digits[n%d]; /*译出最低位,对应字符存入对应工作数组中*/n/=d;}while(n);/* 将译出在工作数组中的字符串复制到s */for(j=0;(s[j]=buf[i])!='\0';j++,i++);/* 其中控制条件可简写成s[j]=buf[i] */return j;}/* 主函数用于测试函数trans() */main(){unsigned int num = 253;int scale[]={2,3,10,16,1};char str[33];int i;clrscr();for(i=0;i<sizeof(scale)/sizeof(scale[0]);i++){if(trans(num,scale[i],str))printf("%5d = %s(%d)\n",num,str,scale[i]);elseprintf("%5d => (%d) Error! \n",num,scale[i]);}printf("\n Press any key to quit...\n");getch();}判断回文数/* 函数circle 用于判断正整数n 的d 进制数表示形式是否是回文数*/ int circle(int n, int d){int s=0,m=n;while(m){s=s*d+m%d;m/=d;}return s==n;}/* main 函数用于测试circle 函数*/int num[]={232,27,851};int scale[]={2,10,16};main(){int i,j;clrscr();for(i=0;i<sizeof(num)/sizeof(num[0]);i++)for(j=0;j<sizeof(scale)/sizeof(scale[0]);j++)if(circle(num[i],scale[j]))printf("%d -> (%d) is a Circle Number!\n",num[i],scale[j]);elseprintf("%d -> (%d) is not a Circle Number!\n",num[i],scale[j]);printf("\n Press any key to quit...\n");getch();}求解钢材切割的最佳订单#include <stdio.h>#define N 20#define DELTA 2int bestlen;int bestsele[N];int sele[N];int n;int orderlen[N];int total;main(){int i;clrscr();printf("\n Please enter total length of the steel:\n");/* 输入钢材总长*/scanf("%d",&total);printf("\n Please enter number of order:\n"); /* 输入定单数*/ scanf("%d",&n);printf("\n Please enter the orders:\n"); /* 输入各定单*/for(i=0;i<n;i++)scanf("%d",&orderlen[i]);bestlen=0; /*最佳解用料的初值*/for(i=0;i<n;i++)sele[i]=bestsele[i]=0; /*置当前选择和最佳选择初值*/try(); /* 调用函数求解*/for(i=0;i<n;i++) /* 输出结果*/if(bestsele[i])printf("order %d length = %d\n",i+1,orderlen[i]);printf("\n Press any key to quit...");getch();}try(){int i,len;for(len=i=0;i<n;i++) /* 求当前选中的用料量*/if(sele[i])len+=orderlen[i]+DELTA;if(len-DELTA<=total) /* 注意最后一段可能不需要切割*/{if(bestlen < len){/* 找到一个更好的解*/bestlen = len;for(i=0;i<n;i++)bestsele[i]=sele[i];}for(i=0;i<n;i++) /* 对所有未选定单逐一作选中尝试循环*/if(!sele[i]){sele[i]=1; /* 做选中尝试*/try();sele[i]=0;}}}指向数组的指针main(){int x,y,z; /* 定义三个int 型变量*/int *xp = &x, /* 定义指针变量xp,并赋值为x 的地址,使xp 指向x */ *yp = &y, /* 定义指针变量yp,并赋值为y 的地址,使yp 指向y */ *zp = &z; /* 定义指针变量zp,并赋值为z 的地址,使zp 指向z */int t;printf("\nPlease input x,y,z:\n");scanf("%d%d%d",xp,yp,zp); /* 通过变量的指针,为变量输入值*/if(*xp>*yp) /* 通过指向变量的指针引用变量的值*/{t=*xp; /* 通过指向变量的指针引用变量的值*/*xp=*yp;/* 通过指向变量x 的指针xp,引用变量x 的值*/*yp=t; /* 通过指向变量y 的指针yp,引用变量y 的值*/}if(*xp>*zp) /* 通过指向变量的指针,引用变量的值*/{t=*xp; /* 通过指向变量x 的指针xp,引用变量x 的值*/*xp=*zp;/* 通过指向变量x 的指针xp,引用变量x 的值*/*zp=t; /* 通过指向变量z 的指针zp,引用变量z 的值*/}if(*yp>*zp) /* 通过指向变量的指针,引用变量的值*/{t=*yp; /* 通过指向变量的指针,引用变量的值*/*yp=*zp;/* 通过指向变量y 的指针yp,引用变量y 的值*/*zp=t;/* 通过指向变量z 的指针zp,引用变量z 的值*/}printf("x = %d\ty = %d\tz = %d\n",x,y,z);printf("\nPress any key to quit...\n");getch();}阿拉伯数字转换为罗马数字#include <stdio.h>#define ROWS 4#define COLS 4int nums[ROWS][COLS]={{1000,1000,1000,1000},{900,500,400,100},{90,50,40,10},{9,5,4,1}};char *roms[ROWS][COLS]={{"m","m","m","m"}, {"cm","d","cd","c"},{"xc","l","xl","x"},{"ix","v","iv","i"}}; main(int argc,char *argv[ ]){int low,high;char roman[25]; if(argc<2){ printf("Usage:roman decimal_number\n");/*运行程序需带整数参数*/}high=low=atoi(argv[1]);/*将第一个参数转换成整数*/checknum(low);if(argc>2){/*带两个参数*/high=atoi(argv[2]);checknum(high);if(low>high){low=high;high=atoi(argv[1]);}}elselow=1;for(;low<=high;low++){to_roman(low,roman);printf("%d\t%s\n",low,roman);}} checknum(int val)/*检查参数合理性*/{if(val<1||val>9999){printf("The number must be in range 1..9999.\n");exit(0);}}to_roman(int decimal,char roman[ ])/*将整数转换成罗马数字表示*/ {int power,index;roman[0]='\0';for(power=0;power<ROWS;power++)for(index=0;index<COLS;index++)while(decimal>=nums[power][index]){strcat(roman,roms[power][index]);decimal-=nums[power][index];}}通讯录的输入输出#include <stdio.h>#define ZIPLEN 10#define PHONLEN 15/*struct addr 类型定义*/ struct addr{char *name;/*姓名*/char *address;/*地址*/char zip[ZIPLEN];/*邮政编码*/char phone[PHONLEN];/*电话号码*/}; main()/*本主函数示意上述输入输出函数的用法*/{struct addr p[100];int i,j;clrscr();for(i=0;readaddr(p+i);i++);for(j=0;j<i;j++) writeaddr(p+j);puts("\n Press any key to quit...");getch();} /* 函数readaddr 用于输入一个通信录函数*/int readaddr(struct addr *dpt){int len;char buf[120];/*输入字符串的缓冲区*/ printf("\nPlease input theName:\n");/*输入姓名*/if(scanf("%s",buf)==1){len=strlen(buf);dpt->name=(char *)malloc(len+1);/*申请存贮姓名的空间*/ strcpy(dpt->name,buf);}else return 0;/*Ctrl+Z 结束输入*/printf("Please input the Address:\n");/*输入地址*/if(scanf("%s",buf)==1){len=strlen(buf);dpt->address=(char *)malloc(len+1);/*申请存贮地址的空间*/ strcpy(dpt->address,buf);}else{/*Ctrl+Z 结束输入*/free(dpt->name);/*释放存贮姓名的空间*/return 0;}printf("Please input the Zip code:\n");/*输入邮编*/if(scanf("%s",buf)==1)strncpy(dpt->zip,buf,ZIPLEN-1);else{free(dpt->name);/*释放存贮姓名的空间*/free(dpt->address);/*释放存贮地址的空间*/return 0;/*Ctrl+Z 结束输入*/}printf("Please input the Phone number:\n");/*输入电话号码*/ if(scanf("%s",buf)==1)strncpy(dpt->phone,buf,PHONLEN-1);else{free(dpt->name);free(dpt->address);return 0;/*Ctrl+Z 结束输入*/}return 1;} /* 函数writeaddr 用于输出通讯录*/int writeaddr(struct addr*dpt){printf("Name : %s\n", dpt->name);/* 输出姓名*/printf("Address : %s\n", dpt->address);/*输出地址*/printf("Zip : %s\n", dpt->zip);/* 输出邮编*/printf("Phone : %s\n\n", dpt->phone);/*输出电话号码*/}扑克牌的结构表示enum suits{CLUBS,DIAMONDS,HEARTS,SPADES}; struct card{enum suits suit;char value[3];};struct card deck[52];char cardval[][3]= {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};char suitsname[][9]={"CLUBS","DIAMONDS","HEARTS","SPADES"}; main() {int i,j;enum suits s;clrscr();for(i=0;i<=12;i++)for(s=CLUBS;s<=SPADES;s++){j=i*4+s;deck[j].suit=s;strcpy(deck[j].value,cardval[i]);}for(j=0;j<52;j++)printf("(%s%3s)%c",suitsname[deck[j].suit],deck[j].value,j%4==3?'\n':'\t');puts("\nPress any key to quit...");getch();}用“结构”统计学生成绩#include <stdio.h>#define N 200#define SCORES 5#define NUMLEN 10struct std_type{char no[NUMLEN];/*学号*/char *name;/*名字符串指针*/int scores[SCORES];/*五门功课的成绩*/};struct std_type students[N];int order[N];int total[N]; /*[函数]输入一个学生信息函数*/int readastu(struct std_type *spt){int len,j;char buf[120];/*输入字符串的缓冲区*/ printf("\nNumber : ");/*输入学号*/if(scanf("%s",buf)==1)strncpy(spt->no,buf,NUMLEN-1);elsereturn 0;/*Ctrl+Z 结束输入*/printf("Name : ");/*输入姓名*/if(scanf("%s",buf)==1){len=strlen(buf);spt->name=(char *)malloc(len+1);/*申请存贮姓名的空间*/ strcpy(spt->name,buf);}else return 0;/*Ctrl+Z 结束输入*/printf("Scores : ");/*输入成绩*/for(j=0;j<SCORES;j++)if(scanf("%d",spt->scores+j)!=1)break;if(j==0)/*一个成绩也未输入*/{free(spt->name);/*释放存贮姓名的空间*/return 0;}for(;j<SCORES;j++)/*少数未输入的成绩用0 分代之*/ spt->scores[j]=0;return 1;} /*[函数]输出一个学生信息的函数*/int writeastu(struct std_type *spt){int i; printf("Number : %s\n",spt->no);/*输出学号*/printf("Name : %s\n",spt->name);/*输出姓名*/printf("Scores : ");/* 输出成绩*/for(i=0;i<SCORES;i++)printf("%4d",spt->scores[i]);printf("\n\n");} main(){int n,i,j,t; clrscr();for(n=0;readastu(students+n);n++);/*采用冒泡法对学生信息数组排序*/for(i=0;i<n;i++){order[i]=i;/* 预置第i 个输入的学生*/for(t=0,j=0;j<SCORES;j++)/*求第i 个学生的总分*/t+=students[i].scores[j];total[i]=t;}/*冒泡排序*/for(i=0;i<n-1;i++)/*共扫视n-1 遍*/for(j=0;j<n-1-i;j++)if(total[order[j]]<total[order[j+1]]){/*交换名次*/t=order[j];order[j]=order[j+1];order[j+1]=t;}for(j=0;j<n;j++)/* 输出*/writeastu(students+order[j]);printf("\n Press any key to quit...\n");getch();}报数游戏#include <stdio.h>struct ele{int no;struct ele *link;}main(){int n,m,i;struct ele *h,*u,*p;clrscr();printf("Please input n&m:\n");scanf("%d%d",&n,&m);/*输入n 和m*/h=u=(struct ele *)malloc(sizeof(struct ele));/*形成首表元*/ h->no=1;for(i=2;i<=n;i++)/*形成其余的n-1 个表元*/{u->link=(struct ele *)malloc(sizeof(struct ele));u=u->link;u->no=i;/*第i 个表元置编号i*/}u->link=h;/*末表元后继首表元,形成环*/puts("\nThe numbers of who will quit the cycle in turn are:"); while(n){for(i=1;i<m;i++)/*掠过m-1 个表元*/u=u->link;p=u->link;/*p 指向第m 个表元*/u->link=p->link;/*第m 个表元从环中脱钩*/printf("%4d",p->no);free(p);/*释放第m 个表元占用的空间*/n--;}printf("\n\n Press any key to quit...\n");getch();}学生成绩管理程序/*学生成绩管理程序编制一个统计学生考试分数的管理程序。
C语言代码大全

C语言代码大全C语言是一种高级程序设计语言,广泛应用于计算机科学和软件开发领域。
它以其简洁、高效的特点而备受青睐。
本文将为您介绍一些常用的C语言代码,包括输入输出、流程控制、函数调用、数据结构等方面的代码示例。
一、输入输出1. 标准输入输出```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("您输入的数字是:%d\n", num);return 0;}```2. 文件读写```cint main() {FILE *file;char str[100];// 写入文件file = fopen("data.txt", "w");fprintf(file, "Hello, World!");fclose(file);// 读取文件file = fopen("data.txt", "r");fscanf(file, "%s", str);printf("从文件中读取的内容是:%s\n", str); fclose(file);return 0;}```二、流程控制1. 条件语句```cint main() {int num = 10;if (num > 0) {printf("该数字是正数。
\n"); } else if (num < 0) {printf("该数字是负数。
\n"); } else {printf("该数字是零。
\n"); }return 0;}```2. 循环语句```c#include <stdio.h>int main() {int num = 5;// while循环while (num > 0) {printf("当前数字:%d\n", num); num--;}// for循环for (int i = 0; i < 5; i++) {printf("当前数字:%d\n", i);}// do-while循环do {printf("当前数字:%d\n", num); num++;} while (num < 5);return 0;}```三、函数调用```c#include <stdio.h>int add(int a, int b) {return a + b;}int main() {int num1 = 5;int num2 = 3;int result = add(num1, num2);printf("两个数的和为:%d\n", result); return 0;}```四、数据结构1. 数组```c#include <stdio.h>int main() {int arr[5] = {1, 2, 3, 4, 5};for (int i = 0; i < 5; i++) {printf("数组元素:%d\n", arr[i]); }return 0;}```2. 结构体```c#include <stdio.h>struct Student {char name[20];int age;};int main() {struct Student stu1;strcpy(, "Tom");stu1.age = 18;printf("学生姓名:%s\n", ); printf("学生年龄:%d\n", stu1.age); return 0;}```以上只是C语言代码中的一小部分示例,C语言是一门非常庞大的编程语言,拥有众多的功能和特性。
C语言常用代码

.#include<iostream>using namespace std;void fullxunhuan(int **a,int n){int t=0;int m1,m2;if(n%2!=0){n++;}for(int i=0;i<n%2;i++){for(m1=i,m2=n-i-1;m1<=n-i-1;m1++) {a[m1][m2]=t%n+1;t++;}for(--m1,--m2;m2>i;m2--){a[m1][m2]=t%n+1;t++;}for(;m1>i;m1--){a[m1][m2]=t%n+1;t++;}for(;m2<n-i-1;m2++){a[m1][m2]=t%n+1;t++;}}}void print(int **a,int n){for(int i=0;i<n;i++){for(int j=0;j<n;j++){cout<<a[i][j]<<"\t";}cout<<"\n";} }void main(){int **a;int n;cout<<"请输入N"<<endl;cin>>n;a=new int *[n];//申请一个N行N列的数组for(int i1=0;i1<n;i1++){a[i1]=new int[n];}for(int i=0;i<n;i++)//给数组初始化{for(int j=0;j<n;j++){a[i][j]=0;}}fullxunhuan(a,n);print(a,n);}.ACM小组内部预定函数数学问题:1.精度计算——大数阶乘2.精度计算——乘法(大数乘小数)3.精度计算——乘法(大数乘大数)4.精度计算——加法5.精度计算——减法6.任意进制转换7.最大公约数、最小公倍数8.组合序列9.快速傅立叶变换(FFT)10.Ronberg算法计算积分11.行列式计算12.求排列组合数字符串处理:1.字符串替换2.字符串查找3.字符串截取计算几何:1.叉乘法求任意多边形面积2.求三角形面积3.两矢量间角度4.两点距离(2D、3D)5.射向法判断点是否在多边形内部6.判断点是否在线段上7.判断两线段是否相交8.判断线段与直线是否相交9.点到线段最短距离10.求两直线的交点11.判断一个封闭图形是凹集还是凸集12.Graham扫描法寻找凸包数论:1.x的二进制长度2.返回x的二进制表示中从低到高的第i位3.模取幂运算4.求解模线性方程5.求解模线性方程组(中国余数定理)6.筛法素数产生器7.判断一个数是否素数图论:1.Prim算法求最小生成树2.Dijkstra算法求单源最短路径3.Bellman-ford算法求单源最短路径4.Floyd算法求每对节点间最短路径排序/查找:1.快速排序2.希尔排序3.选择法排序4.二分查找数据结构:1.顺序队列2.顺序栈3.链表4.链栈5.二叉树一、数学问题1.精度计算——大数阶乘语法:int result=factorial(int n);参数:n:n 的阶乘返回值:阶乘结果的位数注意:本程序直接输出n!的结果,需要返回结果请保留long a[]需要math.h源程序:int factorial(int n){long a[10000];int i,j,l,c,m=0,w;a[0]=1;for(i=1;i<=n;i++){c=0;for(j=0;j<=m;j++){a[j]=a[j]*i+c;c=a[j]/10000;a[j]=a[j]%10000;}if(c>0) {m++;a[m]=c;}}w=m*4+log10(a[m])+1;printf("\n%ld",a[m]);for(i=m-1;i>=0;i--) printf("%4.4ld",a[i]); return w;}2.精度计算——乘法(大数乘小数)语法:mult(char c[],char t[],int m);参数:c[]:被乘数,用字符串表示,位数不限t[]:结果,用字符串表示m:乘数,限定10以内返回值:null注意:需要string.h源程序:void mult(char c[],char t[],int m){int i,l,k,flag,add=0;char s[100];l=strlen(c);for (i=0;i<l;i++)s[l-i-1]=c[i]-'0';for (i=0;i<l;i++){k=s[i]*m+add;if (k>=10) {s[i]=k%10;add=k/10;flag=1;} else {s[i]=k;flag=0;add=0;}}if (flag) {l=i+1;s[i]=add;} else l=i;for (i=0;i<l;i++)t[l-1-i]=s[i]+'0';t[l]='\0';}3.精度计算——乘法(大数乘大数)语法:mult(char a[],char b[],char s[]);参数:a[]:被乘数,用字符串表示,位数不限b[]:乘数,用字符串表示,位数不限t[]:结果,用字符串表示返回值:null注意:空间复杂度为o(n^2)需要string.h源程序:void mult(char a[],char b[],char s[]){inti,j,k=0,alen,blen,sum=0,res[65][65]={0},flag=0;char result[65];alen=strlen(a);blen=strlen(b);for (i=0;i<alen;i++)for (j=0;j<blen;j++) res[i][j]=(a[i]-'0')*(b[j]-'0');for (i=alen-1;i>=0;i--){for (j=blen-1;j>=0;j--) sum=sum+res[i+blen-j-1][j];result[k]=sum%10;k=k+1;sum=sum/10;}for (i=blen-2;i>=0;i--){for (j=0;j<=i;j++) sum=sum+res[i-j][j];result[k]=sum%10;k=k+1;sum=sum/10;}if (sum!=0) {result[k]=sum;k=k+1;}for (i=0;i<k;i++) result[i]+='0';for (i=k-1;i>=0;i--) s[i]=result[k-1-i];s[k]='\0';while(1){if (strlen(s)!=strlen(a)&&s[0]=='0')strcpy(s,s+1);elsebreak;}}4.精度计算——加法语法:add(char a[],char b[],char s[]);参数:a[]:被乘数,用字符串表示,位数不限b[]:乘数,用字符串表示,位数不限t[]:结果,用字符串表示返回值:null注意:空间复杂度为o(n^2)需要string.h源程序:void add(char a[],char b[],char back[]) {int i,j,k,up,x,y,z,l;char *c;if (strlen(a)>strlen(b)) l=strlen(a)+2; else l=strlen(b)+2;c=(char *) malloc(l*sizeof(char));i=strlen(a)-1;j=strlen(b)-1;k=0;up=0;while(i>=0||j>=0){if(i<0) x='0'; else x=a[i];if(j<0) y='0'; else y=b[j];z=x-'0'+y-'0';if(up) z+=1;if(z>9) {up=1;z%=10;} else up=0;c[k++]=z+'0';i--;j--;}if(up) c[k++]='1';i=0;c[k]='\0';for(k-=1;k>=0;k--)back[i++]=c[k];back[i]='\0'; }5.精度计算——减法语法:sub(char s1[],char s2[],char t[]);参数:s1[]:被减数,用字符串表示,位数不限s2[]:减数,用字符串表示,位数不限t[]:结果,用字符串表示返回值:null注意:默认s1>=s2,程序未处理负数情况需要string.h源程序:void sub(char s1[],char s2[],char t[]){int i,l2,l1,k;l2=strlen(s2);l1=strlen(s1);t[l1]='\0';l1--;for (i=l2-1;i>=0;i--,l1--){if (s1[l1]-s2[i]>=0)t[l1]=s1[l1]-s2[i]+'0';else{t[l1]=10+s1[l1]-s2[i]+'0';s1[l1-1]=s1[l1-1]-1;}}k=l1;while(s1[k]<0){s1[k]+=10;s1[k-1]-=1;k--;}while(l1>=0) {t[l1]=s1[l1];l1--;}loop:if (t[0]=='0'){l1=strlen(s1);for (i=0;i<l1-1;i++) t[i]=t[i+1];t[l1-1]='\0';goto loop;}if (strlen(t)==0) {t[0]='0';t[1]='\0';}}6.任意进制转换语法:conversion(char s1[],char s2[],long d1,long d2);参数:s[]:原进制数字,用字符串表示s2[]:转换结果,用字符串表示d1:原进制数d2:需要转换到的进制数返回值:null注意:高于9的位数用大写'A'~'Z'表示,2~16位进制通过验证源程序:void conversion(char s[],char s2[],long d1,long d2){long i,j,t,num;char c;num=0;for (i=0;s[i]!='\0';i++){if (s[i]<='9'&&s[i]>='0') t=s[i]-'0'; else t=s[i]-'A'+10;num=num*d1+t;}i=0;while(1){t=num%d2;if (t<=9) s2[i]=t+'0'; else s2[i]=t+'A'-10;num/=d2;if (num==0) break;i++;}for (j=0;j<i/2;j++){c=s2[j];s2[j]=s[i-j];s2[i-j]=c;}s2[i+1]='\0';}7.最大公约数、最小公倍数语法:resulet=hcf(int a,int b)、result=lcd(int a,int b) 参数:a:int a,求最大公约数或最小公倍数b:int b,求最大公约数或最小公倍数返回值:返回最大公约数(hcf)或最小公倍数(lcd)注意:lcd 需要连同hcf 使用源程序:int hcf(int a,int b){int r=0;while(b!=0){r=a%b;a=b;b=r;}return(a);}lcd(int u,int v,int h){return(u*v/h);}8.组合序列语法:m_of_n(int m, int n1, int m1, int* a, int head)参数:m:组合数C的上参数n1:组合数C的下参数m1:组合数C的上参数,递归之用*a: 1~n的整数序列数组head:头指针返回值:null注意:*a需要自行产生初始调用时,m=m1、head=0调用例子:求C(m,n)序列:m_of_n(m,n,m,a,0);源程序:void m_of_n(int m, int n1, int m1, int* a, int head){int i,t;if(m1<0 || m1>n1) return;if(m1==n1){for(i=0;i<m;i++) cout<<a[i]<<' '; // 输出序列cout<<'\n';return;}m_of_n(m,n1-1,m1,a,head); // 递归调用t=a[head];a[head]=a[n1-1+head];a[n1-1+head]= t;m_of_n(m,n1-1,m1-1,a,head+1); // 再次递归调用t=a[head];a[head]=a[n1-1+head];a[n1-1+head]= t;}9.快速傅立叶变换(FFT)语法:kkfft(double pr[],double pi[],int n,int k,double fr[],double fi[],int l,int il);参数:pr[n]:输入的实部pi[n]:数入的虚部n,k:满足n=2^kfr[n]:输出的实部fi[n]:输出的虚部l:逻辑开关,0 FFT,1 ifFTil:逻辑开关,0 输出按实部/虚部;1 输出按模/幅角返回值:null注意:需要math.h源程序:void kkfft(pr,pi,n,k,fr,fi,l,il)int n,k,l,il;double pr[],pi[],fr[],fi[];{int it,m,is,i,j,nv,l0;double p,q,s,vr,vi,poddr,poddi;for (it=0; it<=n-1; it++){m=it; is=0;for (i=0; i<=k-1; i++){j=m/2; is=2*is+(m-2*j); m=j;} fr[it]=pr[is]; fi[it]=pi[is];}pr[0]=1.0; pi[0]=0.0;p=6.283185306/(1.0*n);pr[1]=cos(p); pi[1]=-sin(p);if (l!=0) pi[1]=-pi[1];for (i=2; i<=n-1; i++){p=pr[i-1]*pr[1];q=pi[i-1]*pi[1];s=(pr[i-1]+pi[i-1])*(pr[1]+pi[1]);pr[i]=p-q; pi[i]=s-p-q;}for (it=0; it<=n-2; it=it+2){vr=fr[it]; vi=fi[it];fr[it]=vr+fr[it+1]; fi[it]=vi+fi[it+1];fr[it+1]=vr-fr[it+1];fi[it+1]=vi-fi[it+1];}m=n/2; nv=2;for (l0=k-2; l0>=0; l0--){m=m/2; nv=2*nv;for (it=0; it<=(m-1)*nv; it=it+nv)for (j=0; j<=(nv/2)-1; j++){p=pr[m*j]*fr[it+j+nv/2];q=pi[m*j]*fi[it+j+nv/2];s=pr[m*j]+pi[m*j];s=s*(fr[it+j+nv/2]+fi[it+j+nv/2]);poddr=p-q; poddi=s-p-q; fr[it+j+nv/2]=fr[it+j]-poddr;fi[it+j+nv/2]=fi[it+j]-poddi;fr[it+j]=fr[it+j]+poddr;fi[it+j]=fi[it+j]+poddi;.}}if (l!=0)for (i=0; i<=n-1; i++){fr[i]=fr[i]/(1.0*n);fi[i]=fi[i]/(1.0*n);}if (il!=0)for (i=0; i<=n-1; i++){pr[i]=sqrt(fr[i]*fr[i]+fi[i]*fi[i]);if(fabs(fr[i])<0.000001*fabs(fi[i])){if ((fi[i]*fr[i])>0) pi[i]=90.0;else pi[i]=-90.0;}elsepi[i]=atan(fi[i]/fr[i])*360.0/6.283185306;}return;}10.Ronberg算法计算积分语法:result=integral(double a,double b);参数:a:积分上限b:积分下限function f:积分函数返回值:f在(a,b)之间的积分值注意:function f(x)需要自行修改,程序中用的是sina(x)/x需要math.h默认精度要求是1e-5源程序:double f(double x){return sin(x)/x; //在这里插入被积函数} double integral(double a,double b) {double h=b-a;double t1=(1+f(b))*h/2.0;int k=1;double r1,r2,s1,s2,c1,c2,t2; loop:double s=0.0;double x=a+h/2.0;while(x<b){s+=f(x);x+=h;}t2=(t1+h*s)/2.0;s2=t2+(t2-t1)/3.0;if(k==1){k++;h/=2.0;t1=t2;s1=s2;goto loop;}c2=s2+(s2-s1)/15.0;if(k==2){c1=c2;k++;h/=2.0;t1=t2;s1=s2;goto loop;}r2=c2+(c2-c1)/63.0;if(k==3){r1=r2; c1=c2;k++;h/=2.0;t1=t2;s1=s2;goto loop;}while(fabs(1-r1/r2)>1e-5){r1=r2;c1=c2;k++;h/=2.0;t1=t2;s1=s2;goto loop;}return r2;}11.行列式计算语法:result=js(int s[][],int n)参数:s[][]:行列式存储数组n:行列式维数,递归用返回值:行列式值注意:函数中常数N为行列式维度,需自行定义源程序:int js(s,n)int s[][N],n;{int z,j,k,r,total=0;int b[N][N];/*b[N][N]用于存放,在矩阵s[N][N]中元素s[0]的余子式*/if(n>2){for(z=0;z<n;z++){for(j=0;j<n-1;j++)for(k=0;k<n-1;k++)if(k>=z)b[j][k]=s[j+1][k+1]; else b[j][k]=s[j+1][k];if(z%2==0) r=s[0][z]*js(b,n-1); /*递归调用*/else r=(-1)*s[0][z]*js(b,n-1);total=total+r;}}else if(n==2)total=s[0][0]*s[1][1]-s[0][1]*s[1][0];return total;}12.求排列组合数语法:result=P(long n,long m); / result=long C(long n,long m);参数:m:排列组合的上系数n:排列组合的下系数返回值:排列组合数注意:符合数学规则:m<=n源程序:long P(long n,long m){long p=1;while(m!=0){p*=n;n--;m--;}return p;}long C(long n,long m){long i,c=1;i=m;while(i!=0){c*=n;n--;i--;}while(m!=0){c/=m;m--;}return c;}二、字符串处理1.字符串替换语法:replace(char str[],char key[],char swap[]); 参数:str[]:在此源字符串进行替换操作key[]:被替换的字符串,不能为空串swap[]:替换的字符串,可以为空串,为空串表示在源字符中删除key[]返回值:null注意:默认str[]长度小于1000,如否,重新设定设定tmp大小需要string.h源程序:void replace(char str[],char key[],char swap[]){int l1,l2,l3,i,j,flag;char tmp[1000];l1=strlen(str);l2=strlen(key);l3=strlen(swap);for (i=0;i<=l1-l2;i++){flag=1;for (j=0;j<l2;j++)if (str[i+j]!=key[j]) {flag=0;break;}if (flag){strcpy(tmp,str);strcpy(&tmp[i],swap);strcpy(&tmp[i+l3],&str[i+l2]);strcpy(str,tmp);i+=l3-1;l1=strlen(str);}}}2.字符串查找语法:result=strfind(char str[],char key[]);参数:str[]:在此源字符串进行查找操作key[]:被查找的字符串,不能为空串返回值:如果查找成功,返回key在str 中第一次出现的位置,否则返回-1注意:需要string.h源程序:int strfind(char str[],char key[]){int l1,l2,i,j,flag;l1=strlen(str);l2=strlen(key);for (i=0;i<=l1-l2;i++){flag=1;for (j=0;j<l2;j++)if (str[i+j]!=key[j]) {flag=0;break;}if (flag) return i;}return -1;} 3.字符串截取语法:mid(char str[],int start,int len,char strback[])参数:str[]:操作的目标字符串start:从第start个字符串开始,截取长度为len的字符len:从第start个字符串开始,截取长度为len的字符strback[]:截取的到的字符返回值:0:超出字符串长度,截取失败;1:截取成功注意:需要string.h源程序:int mid(char str[],int start,int len,char strback[]){int l,i,k=0;l=strlen(str);if (start+len>l) return 0;for (i=start;i<start+len;i++)strback[k++]=str[i];strback[k]='\0';return 1;}三、计算几何1.叉乘法求任意多边形面积语法:result=polygonarea(Point *polygon,int N);参数:*polygon:多变形顶点数组N:多边形顶点数目返回值:多边形面积注意:支持任意多边形,凹、凸皆可多边形顶点输入时按顺时针顺序排列源程序:typedef struct {double x,y;} Point;double polygonarea(Point *polygon,int N){int i,j;double area = 0;for (i=0;i<N;i++) {j = (i + 1) % N;area += polygon[i].x * polygon[j].y;area -= polygon[i].y * polygon[j].x;}area /= 2;return(area < 0 ? -area : area);}2.求三角形面积语法:result=area3(float x1,float y1,float x2,float y2,float x3,float y3);参数:x1~3:三角形3个顶点x坐标y1~3:三角形3个顶点y坐标返回值:三角形面积注意:需要math.h源程序:float area3(float x1,float y1,float x2,float y2,float x3,float y3){float a,b,c,p,s;a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));c=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));return s;}3.两矢量间角度语法:result=angle(double x1, double y1, double x2, double y2);参数:x/y1~2:两矢量的坐标返回值:两的角度矢量注意:返回角度为弧度制,并且以逆时针方向为正方向需要math.h源程序:#define PI 3.1415926double angle(double x1, double y1, double x2, double y2){double dtheta,theta1,theta2;theta1 = atan2(y1,x1);theta2 = atan2(y2,x2);dtheta = theta2 - theta1;while (dtheta > PI)dtheta -= PI*2;while (dtheta < -PI)dtheta += PI*2;return(dtheta);}4.两点距离(2D、3D)语法:result=distance_2d(float x1,float x2,float y1,float y2);参数:x/y/z1~2:各点的x、y、z坐标返回值:两点之间的距离注意:需要math.h源程序:float distance_2d(float x1,float x2,float y1,float y2){return(sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))); }float distance_3d(float x1,float x2,float y1,float y2,float z1,float z2){return(sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1 -z2)*(z1-z2)));}5.射向法判断点是否在多边形内部语法:result=insidepolygon(Point *polygon,int N,Point p);参数:*polygon:多边形顶点数组N:多边形顶点个数p:被判断点返回值:0:点在多边形内部;1:点在多边形外部注意:若p点在多边形顶点或者边上,返回值不确定,需另行判断需要math.h源程序:#define MIN(x,y) (x < y ? x : y)#define MAX(x,y) (x > y ? x : y)typedef struct {double x,y;} Point;int insidepolygon(Point *polygon,int N,Point p) {int counter = 0;int i;double xinters;Point p1,p2;p1 = polygon[0];for (i=1;i<=N;i++) {p2 = polygon[i % N];if (p.y > MIN(p1.y,p2.y)) {if (p.y <= MAX(p1.y,p2.y)) {if (p.x <= MAX(p1.x,p2.x)) {if (p1.y != p2.y) {xinters = (p.y-p1.y)*(p2.x-p1.x)/(p2.y-p1.y)+p1.x;if (p1.x == p2.x || p.x <= xinters)counter++;}}}}p1 = p2;}if (counter % 2 == 0)return(OUTSIDE);elsereturn(INSIDE);}6.判断点是否在线段上语法:result=Pointonline(Point p1,Point p2,Point p);参数:p1、p2:线段的两个端点p:被判断点返回值:0:点在不在线段上;1:点在线段上注意:若p线段端点上返回1需要math.h源程序:#define MIN(x,y) (x < y ? x : y)#define MAX(x,y) (x > y ? x : y)typedef struct {double x,y;} Point;int FC(double x1,double x2){if (x1-x2<0.000002&&x1-x2>-0.000002) return 1; else return 0;}int Pointonline(Point p1,Point p2,Point p) {double x1,y1,x2,y2;x1=p.x-p1.x;x2=p2.x-p1.x;y1=p.y-p1.y;y2=p2.y-p1.y;if (FC(x1*y2-x2*y1,0)==0) return 0;if((MIN(p1.x,p2.x)<=p.x&&p.x<=MAX(p1.x,p2. x))&&(MIN(p1.y,p2.y)<=p.y&&p.y<=MAX(p1.y,p2.y )))return 1; else return 0;}7.判断两线段是否相交语法:result=sectintersect(Point p1,Point p2,Point p3,Point p4);参数:p1~4:两条线段的四个端点返回值:0:两线段不相交;1:两线段相交;2两线段首尾相接注意:p1!=p2;p3!=p4;源程序:#define MIN(x,y) (x < y ? x : y)#define MAX(x,y) (x > y ? x : y)typedef struct {double x,y;} Point;int lineintersect(Point p1,Point p2,Point p3,Point p4){Point tp1,tp2,tp3;if((p1.x==p3.x&&p1.y==p3.y)||(p1.x==p4.x& &p1.y==p4.y)||(p2.x==p3.x&&p2.y==p3.y)| |(p2.x==p4.x&&p2.y==p4.y))return 2;//快速排斥试验if((MIN(p1.x,p2.x)<p3.x&&p3.x<MAX(p1.x,p2. x)&&MIN(p1.y,p2.y)<p3.y<MAX(p1.y,p2.y))||(MIN(p1.x,p2.x)<p4.x&&p3.x<MAX(p1.x,p2.x )&&MIN(p1.y,p2.y)<p3.y<MAX(p1.y,p2.y)));else return 0;//跨立试验tp1.x=p1.x-p3.x;tp1.y=p1.y-p3.y;tp2.x=p4.x-p3.x;tp2.y=p4.y-p3.y;tp3.x=p2.x-p3.x;tp3.y=p2.y-p3.y;if((tp1.x*tp2.y-tp1.y*tp2.x)*(tp2.x*tp3.y-tp2.y*tp3 .x)>=0) return 1; else return 0;}8.判断线段与直线是否相交语法:result=lineintersect(Point p1,Point p2,Point p3,Point p4);参数:p1、p2:线段的两个端点p3、p4:直线上的两个点返回值:0:线段直线不相交;1:线段和直线相交注意:如线段在直线上,返回1源程序:typedef struct {double x,y;} Point;int lineintersect(Point p1,Point p2,Point p3,Point p4){Point tp1,tp2,tp3;tp1.x=p1.x-p3.x;tp1.y=p1.y-p3.y;tp2.x=p4.x-p3.x;tp2.y=p4.y-p3.y;tp3.x=p2.x-p3.x;tp3.y=p2.y-p3.y;if((tp1.x*tp2.y-tp1.y*tp2.x)*(tp2.x*tp3.y-tp2.y*tp3 .x)>=0) return 1; else return 0;}9.点到线段最短距离语法:result=mindistance(Point p1,Point p2,Point q);参数:p1、p2:线段的两个端点q:判断点返回值:点q到线段p1p2的距离注意:需要math.h源程序:#define MIN(x,y) (x < y ? x : y)#define MAX(x,y) (x > y ? x : y)typedef struct {double x,y;} Point;double mindistance(Point p1,Point p2,Point q) {int flag=1;double k;Point s;if (p1.x==p2.x) {s.x=p1.x;s.y=q.y;flag=0;}if (p1.y==p2.y) {s.x=q.x;s.y=p1.y;flag=0;}if (flag){k=(p2.y-p1.y)/(p2.x-p1.x);s.x=(k*k*p1.x+k*(q.y-p1.y)+q.x)/(k*k+1);s.y=k*(s.x-p1.x)+p1.y;}if(MIN(p1.x,p2.x)<=s.x&&s.x<=MAX(p1.x,p2.x ))returnsqrt((q.x-s.x)*(q.x-s.x)+(q.y-s.y)*(q.y-s.y));elsereturnMIN(sqrt((q.x-p1.x)*(q.x-p1.x)+(q.y-p1.y)*(q.y-p1.y)),sqrt((q.x-p2.x)*(q.x-p2.x)+(q.y-p2.y)*(q.y-p2.y)));}10.求两直线的交点语法:result=mindistance(Point p1,Point p2,Point q);参数:p1~p4:直线上不相同的两点*p:通过指针返回结果返回值:1:两直线相交;2:两直线平行注意:如需要判断两线段交点,检验k和对应k1(注释中)的值是否在0~1之间,用在0~1之间的那个求交点源程序:typedef struct {double x,y;} Point;int linecorss(Point p1,Point p2,Point p3,Point p4,Point *p){double k;//同一直线if((p4.x-p3.x)*(p1.y-p3.y)-(p4.y-p3.y)*(p1.x-p3.x) ==0&&(p2.x-p1.x)*(p1.y-p3.y)-(p2.y-p1.y)*(p1.x-p3.x)= =0) return 2;//平行,不同一直线if((p4.y-p3.y)*(p2.x-p1.x)-(p4.x-p3.x)*(p2.y-p1.y) ==0) return 0;k=((p4.x-p3.x)*(p1.y-p3.y)-(p4.y-p3.y)*(p1.x-p3. x))/((p4.y-p3.y)*(p2.x-p1.x)-(p4.x-p3.x)*(p2.y-p1 .y));//k1=((p2.x-p1.x)*(p1.y-p3.y)-(p2.y-p1.y)*(p1.x -p3.x))/((p4.y-p3.y)*(p2.x-p1.x)-(p4.x-p3.x)*(p2. y-p1.y));(*p).x=p1.x+k*(p2.x-p1.x);(*p).y=p1.y+k*(p2.y-p1.y);return 1;//有交点}11.判断一个封闭图形是凹集还是凸集语法:result=convex(Point *p,int n);参数:*p:封闭曲线顶点数组n:封闭曲线顶点个数返回值:1:凸集;-1:凹集;0:曲线不符合要求无法计算注意:默认曲线为简单曲线:无交叉、无圈源程序:typedef struct {double x,y;} Point;int convex(Point *p,int n){int i,j,k;int flag = 0;double z;if (n < 3)return(0);for (i=0;i<n;i++) {j = (i + 1) % n;k = (i + 2) % n;z = (p[j].x - p[i].x) * (p[k].y - p[j].y);z -= (p[j].y - p[i].y) * (p[k].x - p[j].x);if (z < 0)flag |= 1;else if (z > 0)flag |= 2;if (flag == 3)return -1; //CONCAVE}if (flag != 0)return 1; //CONVEXelsereturn 0;}12.Graham扫描法寻找凸包语法:Graham_scan(Point PointSet[],Point ch[],int n,int &len);参数:PointSet[]:输入的点集ch[]:输出的凸包上的点集,按照逆时针方向排列n:PointSet中的点的数目len:输出的凸包上的点的个数返回值:null源程序:struct Point{float x,y;};float multiply(Point p1,Point p2,Point p0) {return((p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y));}float distance(Point p1,Point p2){return(sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)* (p1.y-p2.y)));}void Graham_scan(Point PointSet[],Point ch[],int n,int &len){int i,j,k=0,top=2;Point tmp;for(i=1;i<n;i++)if((PointSet[i].y<PointSet[k].y)||((PointSet[i].y= =PointSet[k].y)&&(PointSet[i].x<PointSet[k].x)) )k=i;tmp=PointSet[0];PointSet[0]=PointSet[k];PointSet[k]=tmp;for (i=1;i<n-1;i++){k=i;for (j=i+1;j<n;j++)if( (multiply(PointSet[j],PointSet[k],PointSet[0])> 0) ||((multiply(PointSet[j],PointSet[k],PointSet[0])= =0)&&(distance(PointSet[0],PointSet[j])<distance(P ointSet[0],PointSet[k]))) )k=j;tmp=PointSet[i];PointSet[i]=PointSet[k];PointSet[k]=tmp;.}ch[0]=PointSet[0];ch[1]=PointSet[1];ch[2]=PointSet[2];for (i=3;i<n;i++){while(multiply(PointSet[i],ch[top],ch[top-1])>=0) top--;ch[++top]=PointSet[i];}len=top+1;}四、数论1.x的二进制长度语法:result=BitLength(int x);参数:x:测长的x返回值:x的二进制长度源程序:int BitLength(int x){int d = 0;while (x > 0) {x >>= 1;d++;}return d;}2.返回x的二进制表示中从低到高的第i位语法:result=BitAt(int x, int i);参数:x:十进制xi:要求二进制的第i位返回值:返回x的二进制表示中从低到高的第i位注意:最低位为第一位源程序:int BitAt(int x, int i){return ( x & (1 << (i-1)) );}3.模取幂运算语法:result=Modular_Expoent(int a,int b,int n);参数:a、b、n:a^b mod n 的对应参数返回值:a^b mod n 的值注意:需要BitLength和BitAt源程序:int Modular_Expoent(int a,int b,int n) {int i, y=1;for (i = BitLength(b); i > 0; i--){y = (y*y)%n;if (BitAt(b,i) > 0)y = (y*a)%n;}return y;}4.求解模线性方程语法:result=modular_equation(int a,int b,int n);参数:a、b、n:ax=b (mod n) 的对应参数返回值:方程的解源程序:int ext_euclid(int a,int b,int &x,int &y) //求gcd(a,b)=ax+by{int t,d;if (b==0) {x=1;y=0;return a;}d=ext_euclid(b,a %b,x,y);t=x;x=y;y=t-a/b*y;return d;}void modular_equation(int a,int b,int n){int e,i,d;int x,y;d=ext_euclid(a,n,x,y);if (b%d>0)printf("No answer!\n");else{e=(x*(b/d))%n;for (i=0;i<d;i++)printf("The %dth answer is : %ld\n",i+1,(e+i*(n/d))%n);}}5.求解模线性方程组(中国余数定理)语法:result=Modular_Expoent(int a,int b,int n);参数:B[]、W[]:a=B[] (mod W[]) 的对应参数返回值: a 的值注意:其中W[],B[]已知,W[i]>0且W[i]与W[j]互质, 求a源程序:int ext_euclid(int a,int b,int &x,int &y) //求gcd(a,b)=ax+by{int t,d;if (b==0) {x=1;y=0;return a;}d=ext_euclid(b,a %b,x,y);t=x;x=y;y=t-a/b*y;return d;}int China(int B[],int W[],int k){int i;int d,x,y,a=0,m,n=1;for (i=0;i<k;i++)n*=W[i];for (i=0;i<k;i++){m=n/W[i];d=ext_euclid(W[i],m,x,y);a=(a+y*m*B[i])%n;}if (a>0) return a;else return(a+n);}6.筛法素数产生器语法:result=prime(int a[],int n);参数:a[]:用于返回素数的数组n:产生n以内的素数,按升序放入a[]中返回值:n以内素数的个数注意:其中W[],B[]已知,W[i]>0且W[i]与W[j]互质, 求a源程序:int prime(int a[],int n){int i,j,k,x,num,*b;n++;n/=2;b=(int *)malloc(sizeof(int)*(n+1)*2);a[0]=2;a[1]=3;num=2;for(i=1;i<=2*n;i++)b[i]=0;for(i=3;i<=n;i+=3)for(j=0;j<2;j++){x=2*(i+j)-1;while(b[x]==0){a[num++]=x;for(k=x;k<=2*n;k+=x)b[k]=1;}}return num;}7.判断一个数是否素数语法:result=comp(int n);参数:n:判断n是否素数返回值:素数返回1,否则返回0源程序:int comp(int n){int i,flag=1;for (i=2;i<=sqrt(n);i++)if (n%i==0) {flag=0;break;}if (flag==1) return 1; else return 0;}五、图论1.Prim算法求最小生成树语法:prim(Graph G,int vcount,int father[]); 参数:G:图,用邻接矩阵表示vcount:表示图的顶点个数father[]:用来记录每个节点的父节点返回值:null注意:常数max_vertexes为图最大节点数常数infinity为无穷大源程序:#define infinity 1000000#define max_vertexes 5typedef int Graph[max_vertexes][max_vertexes];void prim(Graph G,int vcount,int father[]) {int i,j,k;intlowcost[max_vertexes],closeset[max_vertexes],u sed[max_vertexes];for (i=0;i<vcount;i++){lowcost[i]=G[0][i];closeset[i]=0;used[i]=0;father[i]=-1;}used[0]=1;for (i=1;i<vcount;i++){j=0;while (used[j]) j++;for (k=0;k<vcount;k++)if((!used[k])&&(lowcost[k]<lowcost[j])) j=k;father[j]=closeset[j];used[j]=1;for (k=0;k<vcount;k++)if(!used[k]&&(G[j][k]<lowcost[k])){ lowcost[k]=G[j][k];closeset[k]=j; }}}2.Dijkstra算法求单源最短路径语法:result=Dijkstra(Graph G,int n,int s,int t, int path[]);参数:G:图,用邻接矩阵表示n:图的顶点个数s:开始节点t:目标节点path[]:用于返回由开始节点到目标节点的路径返回值:最短路径长度注意:输入的图的权必须非负顶点标号从0开始用如下方法打印路径:i=t;while (i!=s){printf("%d<--",i+1);i=path[i];}printf("%d\n",s+1);源程序:int Dijkstra(Graph G,int n,int s,int t, int path[]){inti,j,w,minc,d[max_vertexes],mark[max_vertexes];for (i=0;i<n;i++) mark[i]=0;for (i=0;i<n;i++){ d[i]=G[s][i];path[i]=s; }mark[s]=1;path[s]=0;d[s]=0;for (i=1;i<n;i++){minc=infinity;w=0;for (j=0;j<n;j++)if((mark[j]==0)&&(minc>=d[j])){minc=d[j];w=j;}mark[w]=1;for (j=0;j<n;j++)if((mark[j]==0)&&(G[w][j]!=infinity)&&(d[j]>d[ w]+G[w][j])){ d[j]=d[w]+G[w][j];path[j]=w; }}return d[t];}3.Bellman-ford算法求单源最短路径语法:result=Bellman_ford(Graph G,int n,int s,int t,int path[],int success);参数:G:图,用邻接矩阵表示n:图的顶点个数s:开始节点t:目标节点path[]:用于返回由开始节点到目标节点的路径success:函数是否执行成功返回值:最短路径长度注意:输入的图的权可以为负,如果存在一个从源点可达的权为负的回路则success=0 顶点标号从0开始用如下方法打印路径:i=t;while (i!=s){printf("%d<--",i+1);i=path[i];}printf("%d\n",s+1);源程序:int Bellman_ford(Graph G,int n,int s,int t,int path[],int success){int i,j,k,d[max_vertexes];for (i=0;i<n;i++) {d[i]=infinity;path[i]=0;}d[s]=0;for (k=1;k<n;k++)for (i=0;i<n;i++)for (j=0;j<n;j++)if (d[j]>d[i]+G[i][j]) {d[j]=d[i]+G[i][j];path[j]=i;}success=0;for (i=0;i<n;i++)for (j=0;j<n;j++)if (d[j]>d[i]+G[i][j]) return 0;success=1;return d[t];}4.Floyd-Warshall算法求每对节点间最短路径语法:Floyd_Washall(Graph G,int n,Graph D,Graph P);参数:G:图,用邻接矩阵表示n:图的顶点个数D: D[i,j]表示从i到j的最短距离P:P[i,j]表示从i到j的最短路径上j 的父节点返回值:null源程序:void Floyd_Washall(Graph G,int n,Graph D,Graph P){int i,j,k;for (i=0;i<n;i++)for (j=0;j<n;j++){ D[i][j]=G[i][j];P[i][j]=i; }for (i=0;i<n;i++) { D[i][i]=0;P[i][i]=0; }for (k=0;k<n;k++)for (i=0;i<n;i++)for (j=0;j<n;j++)if (D[i][j]>D[i][k]+D[k][j]){ D[i][j]=D[i][k]+D[k][j];P[i][j]=P[k][j]; } }六、排序/查找1.快速排序语法:quicksort(int l,int r,int b[]);参数:l:排序上界,开始时l=0r:排序下界,开始时r=数组元素个数b[]:被排序的元素返回值:null注意:输出升序序列源程序:void quicksort(int l,int r,int b[]){int i,j,x;if(l>=r) return;i=l;j=r;x=b[i];while(i!=j){while(b[j]>x&&j>i) j--;if(i<j){b[i]=b[j];i++;}while(b[i]<x&&j>i)i++;if(i<j){b[j]=b[i];j--;}}b[i]=x;quicksort(l,j-1,b);quicksort(i+1,r,b);}2.希尔排序语法:shellsort(int a[],int n);参数:n:数组元素个数a[]:待排序数组返回值:null注意:输出升序序列源程序:void shellsort(int a[],int n) {int i,j,g;int temp,k;g=n/2;while(g!=0){for(i=g+1;i<=n;i++){temp=a[i];j=i-g;while(j>0){k=j+g;if(a[j]<=a[k])j=0;else{temp=a[j];a[j]=a[k];a[k]=temp;}。
C语言代码大全(可编辑修改word版)

乘法口诀表 #include <stdio.h> #include <conio.h> void main(void) {
int i,j,x,y; clrscr(); printf("\n\n * * * 乘法口诀表 * * * \n\n"); x=9; y=5; for(i=1;i<=9;i++) {
case '2': do{ clrscr(); puts("=================================="); puts("| Please select Credit money: |"); puts("| 1. $50 |"); puts("| 2. $100 |"); puts("| 3. Return |"); puts("=================================="); CreditMoney = getch(); }while( CreditMoney!='1' && CreditMoney!='2' && CreditMoney!='3' ); switch(CreditMoney)
do{ clrscr(); puts("========================="); puts("| Please select key: |"); puts("| 1. Quary |"); puts("| 2. Credit |"); puts("| 3. Debit |"); puts("| 4. Return |"); puts("========================="); SelectKey = getch(); }while( SelectKey!='1' && SelectKey!='2' && SelectKey!='3' &&
简单的c语言程序代码

简单的c语言程序代码C语言是一种简单而强大的编程语言,广泛用于计算机科学和软件开发领域。
它的语法简洁明了,易于理解和学习。
在本文中,我们将介绍一些简单的C语言程序代码示例,以帮助初学者入门。
1. Hello, World!"Hello, World!"是编程中最简单的程序,它可以让我们在屏幕上输出一条简单的问候语。
以下是使用C语言编写的Hello World程序的示例代码:```c#include <stdio.h>int main() {printf("Hello, World!");return 0;}```在这个示例中,我们使用了`stdio.h`头文件,其中包含了输入输出函数的定义。
`printf`函数用于将文本输出到屏幕上。
`int main()`是程序的主函数,程序从这里开始执行。
`return 0;`语句表示程序执行成功。
2. 计算两个数的和这个示例程序可以计算两个数的和,并将结果打印到屏幕上。
以下是示例代码:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d%d", &num1, &num2);sum = num1 + num2;printf("两个数的和是:%d", sum);return 0;}```在这个程序中,我们首先声明了三个整型变量`num1`、`num2`和`sum`。
`printf`函数用于显示提示信息,要求用户输入两个整数。
然后,使用`scanf`函数将用户输入的值存储在`num1`和`num2`中。
接下来,我们计算两个数的和,将结果存储在`sum`中,并使用`printf`函数将结果显示在屏幕上。
3. 判断一个数是否为正数下面是一个简单的程序示例,可以判断用户输入的数是否为正数。
c语言程序代码

c语言程序代码(总22页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--1.要求在屏幕上输出下一行信息。
This is a c program.程序:#include<>int main(){printf(“this is a c program.\n”);return 0;}2.求两个整数之和。
程序:#include<>int main(){int a,b,sum;a=122;b=234;sum=a+b;printf(“sum is %d\n”,sum);return 0;}3.求两个整数之间的较大者。
程序:#include<>int main(){int max(int x,int y);int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("max=%d\n",c);return 0;}int max(int x,int y){int z;if(x>y)z=x;else z=y;return(z);}4.有人用温度计测量出华氏发表示的温度(如69°F),今要求把她转换成以摄氏法表示的温度(如20℃)。
公式:c=5(f-32)/9.其中f代表华氏温度,c代表摄氏温度。
程序:#include<>int main(){float f,c;f=;c=9)*(f-32);printf("f=%f\nc=%f\n",f,c);return 0;}5.计算存款利息。
有1000元,想存一年。
有一下三种方法可选:(1)活期:年利率为r1;(2)一年定期:年利率为r2;(3)存两次半年定期:年利率为r3。
分别计算一年后按三种方法所得到的本息和。
程序:#include<>int main(){float p0=1000,r1=,r2=,r3=,p1,p2,p3;p1=p0*(1+r1);p2=p0*(1+r2);p3=p0*(1+r3/2)*(1+r3/2);printf("p1=%f\np2=%f\np3=%f\n",p1,p2,p3);return 0;}6.给定一个大写字母,要求以小写字母输出。
C#100例经典源代码

long int i,x, y, z;
for (i=1;i<100000;i++)
{ x=sqrt(i+100); /*x为加上100后开方后的结果*/
y=sqrt(i+268); /*y为再加上168后开方后的结果*/
i f (x*x== i +100&&y*y== i +268)/*如果一个数的平方根的平方等于该数,这说明此 数是完全平方数*/
bonus二bonus2+(i-200000) *;
else if(i<=600000)
bonus二bonus4+(i-400000)*;
else if(i<=1000000)
bonus二bonus6+(i-600000)*;
e I se
bonus二bonusl0+ (i T 000000)*; pr intf ("bonus=%d", bonus);
pr intf (H\n%ld\n,\ i);
}
)
【程序4】
题目:输入某年某月某日,判断这一天是这一年的第几天
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即 本年的第几天,特殊
情况,闰年且输入月份大于3时需考虑多加一天。
2•程序源代码:
ma i n()
int day, month, year, sum, Ieap;
bonus4=bonus2+200000*;
bonus6=bonus4+200000*;
bonusl0=bonus6+400000*;
if (i<=100000)
c经典代码大全

#include <iostream.h> //包含iostream.h头文件main(){//声明变量,并初始化int a=010,b=10,c=0X10;//以十进制形式显示数据cout<<"DEC:";cout<<" a="<<a;cout<<" b="<<b;cout<<" c="<<c<<endl;//以八进制形式显示数据cout<<"OCT:";cout<<oct; //指定八进制输出cout<<" a="<<a;cout<<" b="<<b;cout<<" c="<<c<<endl;//以十六进制形式显示数据cout<<"HEX:";cout<<hex; //指定十六进制输出cout<<" a="<<a;cout<<" b="<<b;cout<<" c="<<c<<endl;//八、十和十六进制数混合运算并输出cout<<"a+b+c=";cout<<dec; //恢复十进制输出cout<<a+b+c<<endl;//测试八、十和十六进制输入cout<<"DEC:a="; cin>>a;cout<<"OCT:b="; cin>>b;cout<<"HEX:a="; cin>>c;cout<<"DEC:"<<dec<<endl; //指定十进制输出cout<<"a="<<a<<endl;cout<<"b="<<b<<endl;cout<<"c="<<c<<endl;}cin>>dx;cout<<"dy=";cin>>dy;cout<<dx<<"+"<<dy<<"="<<dx+dy<<endl;cout<<dx<<"-"<<dy<<"="<<dx-dy<<endl;cout<<dx<<"*"<<dy<<"="<<dx*dy<<endl;cout<<dx<<"/"<<dy<<"="<<dx/dy<<endl<<endl;//cout<<fx<<"%"<<fy<<"="<<fx%fy<<endl; Error!//测试float和double类型数据的有效位fx=10.0;fy=6.0;float fz=fx/fy;dx=10.0;dy=6.0;double dz=dx/dy;cout<<"fz=";cout<<setprecision(20)<<fx<<"/"<<fy<<"="<<fz<<endl;cout<<"dz=";cout<<setprecision(20)<<dx<<"/"<<dy<<"="<<dz<<endl<<endl;;//float型溢出float x=3.5e14;cout<<"x="<<x<<endl;cout<<"x*x="<<x*x<<endl;cout<<"x*x*x="<<x*x*x<<endl;}#include <iostream.h> main(){//x,y 为操作数,c为运算符int x,y,z;char c1;cin>>x>>c1>>y; //c1//多路选择语句选择不同表达式计算语句switch(c1) {case '+':cout<<x<<"+"<<y<<"="<<x+y<<endl;break;case '-':cout<<x<<"-"<<y<<"="<<x-y<<endl;break;case '*':cout<<x<<"*"<<y<<"="<<x*y<<endl;break;case '/':cout<<x<<"/"<<y<<"="<<x/y<<endl;break;case '%':cout<<x<<"%"<<y<<"="<<x%y<<endl;break;default :cout<<"Wrong !"<<endl; //当不符合上述情况时执行本子句}}#include<iostream.h>float x=365.5; //声明全局变量main() {int x=1,y=2;double w=x+y;{double x=1.414,y=1.732,z=3.14;cout<<"inner:x="<<x<<endl;cout<<"inner:y="<<y<<endl;cout<<"inner:z="<<z<<endl;cout<<"outer:w="<<w<<endl;cout<<"::x="<<::x<<endl; //访问重名的全局变量}cout<<"outer:x="<<x<<endl;cout<<"outer:y="<<y<<endl;cout<<"outer:w="<<w<<endl;//cout<<"inner:z="<<z<<endl;无效cout<<"::x="<<::x<<endl; //访问重名的全局变量}#include<iostream.h>main() {//显示1,2,3 (10)for(int i=1;i<=10;i++)cout<<i<<" ";cout<<endl;//显示10,9,8 (1)for(int j=10;j>=1;j--)cout<<j<<" ";cout<<endl;//显示1,3,5 (9)for(int k=1;k<=10;k=k+2)cout<<k<<" ";cout<<endl;//显示ABC...Zfor(char c='A';c<='Z';c++)cout<<c;cout<<endl;//显示0,0.1,0.2...1.0for(float x=0;x<=1.0;x=x+0.1)cout<<x<<" ";cout<<endl;//显示0,0.1,0.2...1.0for(float x1=0;x1<=1.0+0.1/2;x1=x1+0.1) cout<<x1<<" ";cout<<endl;//计算s=1+2+3...+100int s=0;for(int n=1;n<=100;n++)s=s+n;cout<<"s="<<s<<endl;}#include<iostream.h>main(){//计算s=1+2+3...+100int s=0,n=1;while(n<=100) {s=s+n;n++;}cout<<"s="<<s<<endl;//累加键盘输入的数据double x,sum=0.0;cout<<"x=";cin>>x;while(x!=0) {sum+=x;cout<<"x=";cin>>x;}cout<<"sum="<<sum<<endl;}#include<iostream.h>main(){//计算s=1+2+3...+100int s=0,n=0;do {n++;s+=n;}while(n<100);cout<<"s="<<s<<endl;//累加键盘输入的数据double x,sum=0.0;do {cout<<"x=";cin>>x;sum+=x;} while(x!=0);cout<<"sum="<<sum<<endl;}#include<iostream.h>main(){//计算和打印打印乘法九九表for (int i=1;i<=9;i++) {cout<<i;for (int j=1;j<=9;j++)cout<<'\t'<<i<<"*"<<j<<"="<<i*j;cout<<endl;}}#include<iostream.h>main(){int x,sum=0;//定义标号L1L1: cout<<"x=";cin>>x;if (x==-1)goto L2; //无条件转移语句,转到L2语句处elsesum+=x;goto L1; //无条件转移语句,转到L1语句处//定义标号L2L2: cout<<"sum="<<sum<<endl;}#include<iostream.h>main(){//累加键盘输入的数据double x,sum=0.0;while(1) {cout<<"x=";cin>>x;if (x<=0) break;sum+=x;}cout<<"sum="<<sum<<endl;}#include<iostream.h>main(){int i;for (i=1;i<=20;i++){if (i%3==0) //能被3 整除的整数,返回进行下次循环continue;cout<<i<<" ";}cout<<endl;}#include<iostream.h>main(){//声明数组和变量int a[5],i,sum;double avg;//从键盘上循环为数组赋值for (i=0;i<5;i++) {cout<<"a["<<i<<"]=";cin>>a[i];}//直接显示数组元素cout<<a[0]<<a[1]<<a[2]<<a[3]<<a[4]<<endl;//利用for循环显示数组各元素的值for (i=0;i<5;i++)cout<<a[i]<<" ";cout<<endl;//计算数组元素之和,并显示计算结果sum=a[0]+a[1]+a[2]+a[3]+a[4];cout<<"sum="<<sum<<endl;//利用循环计算数组的累加和for (sum=0,i=0;i<5;i++)sum+=a[i];//显示累加和及平均值cout<<"sum="<<sum<<endl;avg=sum/5.0;cout<<"avg="<<avg<<endl;}#include<iostream.h>main(){int i,max,index,a[5];//从键盘上为数组赋值for (i=0;i<=4;i++){cout<<"a["<<i<<"]=";cin>>a[i];}// 利用循环遍历数组,找出最大值的元素及其下标max=a[0];for (i=0;i<=4;i++){if (max<a[i]){max=a[i];index=i;}}cout<<"\nMax="<<max<<" index="<<index;}#include<iostream.h>#define size 5main(){//声明变量int i,j;float t,a[size];//从键盘上为数组赋值for (i=0;i<size;i++){cout<<"a["<<i<<"]=";cin>>a[i];}//对数组按从小到大顺序排序for (i=0;i<size-1;i++)for (j=i+1;j<size;j++)if (a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}//显示排序结果for (i=0;i<size;i++)cout<<a[i]<<" ";cout<<endl;//输入要查找的数据int value;int found; //找到为1,否则为0int low,high,mid;for (i=1;i<=3;i++) {cout<<"value=";cin>>value;//二分法查找数组afound=0;low=0;high=size-1;while(low<=high){mid=(high+low)/2;if (a[mid]==value){found=1;break;}if (a[mid]<value)low=mid+1;elsehigh=mid-1;}if (found)cout<<"The valu found at:a["<<mid<<"]="<<a[mid]<<endl;elsecout<<"The "<<value<<" is not found!"<<endl;}}#include<iostream.h>main(){//声明变量int i,j;float t,a[5];//从键盘上为数组赋值for (i=0;i<=4;i++){cout<<"a["<<i<<"]=";cin>>a[i];}//对数组按从大到小顺序排序for (i=0;i<=3;i++)for (j=i+1;j<=4;j++)if (a[i]<=a[j]){t=a[i];a[i]=a[j];a[j]=t;}//显示排序结果for (i=0;i<=4;i++)cout<<a[i]<<" ";}#include<iostream.h>main(){//声明二维数组及变量int a[2][3],i,j;//从键盘上为数组a赋值for (i=0;i<2;i++)for (j=0;j<3;j++){cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];}//显示数组afor (i=0;i<2;i++) {for (j=0;j<3;j++){cout<<a[i][j]<<" ";}cout<<endl;}//找出该数组的最大元素及其下标int h,l,Max=a[0][0];for (i=0;i<2;i++) {for (j=0;j<3;j++){if (Max<a[i][j]) {Max=a[i][j];h=i;l=j;}}}cout<<"Max:"<<"a["<<h<<"]["<<l<<"]="<<a[h][l]<<endl; }#include<iostream.h>main(){//声明字符数组和变量char str[6];int i;//从键盘上输入字符串cout<<"str=";cin>>str;cout<<str<<endl;//按数组和下标变量两种方式显示字符数组cout<<str<<endl;for (i=0;i<6;i++)cout<<str[i];cout<<endl;//字符串反向输出for (i=5;i>=0;i--)cout<<str[i];cout<<endl;//将字符数组变成大写字母后输出for (i=0;i<=5;i++)str[i]-=32; //小写字母转换成大写字母cout<<str<<endl; //显示字符串}#include<iostream.h>main(){//声明变量和指针变量int a,b,c,*ip;//指针变量ip指向变量aa=100;ip=&a; //使指针变量ip 指向变量acout<<"a="<<a<<endl;cout<<"*ip="<<*ip<<endl;cout<<"ip="<<ip<<endl;//指针变量ip指向变量bip=&b; //使指针变量ip 指向变量b b=200;cout<<"b="<<b<<endl;cout<<"*ip="<<*ip<<endl;cout<<"ip="<<ip<<endl;//指针变量ip指向变量cip=&c; //使指针变量ip 指向变量b *ip=a+b;cout<<"c="<<c<<endl;cout<<"*ip="<<*ip<<endl;cout<<"ip="<<ip<<endl;}#include<iostream.h>main(){//声明数组、变量和指针变量int a[2][3],i,j;int* ip;//从键盘上为数组a赋值for (i=0;i<2;i++) //为数组a赋值for (j=0;j<3;j++){cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];}//利用下标变量显示数组afor (i=0;i<2;i++) {for (j=0;j<3;j++){cout<<a[i][j]<<" ";}cout<<endl;}//利用指针变量显示数组aip=&a[0][0];for (i=0;i<2;i++) {for (j=0;j<3;j++){cout<<"a["<<i<<"]["<<j<<"]=";cout<<ip<<" ";cout<<*ip<<endl;ip++;}}}#include<iostream.h>main(){//声明数组、变量和指针变量int a[]={1,2,3,4,5,6};int *ip1,*ip2;//测试指针的赋值运算ip1=a;ip2=ip1;cout<<"*ip1="<<(*ip1)<<endl;cout<<"*ip2="<<(*ip2)<<endl;//测试指针的自增自减运算和组合运算ip1++;ip2+=4;cout<<"*ip1="<<(*ip1)<<endl;cout<<"*ip2="<<(*ip2)<<endl;//测试指针变量之间的关系运算int n=ip2>ip1;cout<<"ip2>ip1="<<n<<endl;cout<<"ip2!=NULL="<<(ip2!=NULL)<<endl;//指针变量之间的减法n=ip2-ip1;cout<<"ip2-ip1="<<n<<endl;}#include<iostream.h>main(){//声明字符型数组和指针变量char str[10];char *strip=str;//输入输出cout<<"str=";cin>>str; //用字符数组输入字符串cout<<"str="<<str<<endl;cout<<"strip="<<strip<<endl;cout<<"strip=";cin>>strip; //用字符指针变量输入字符串cout<<"str="<<str<<endl;cout<<"strip="<<strip<<endl;//利用指针变量改变其指向字符串的内容*(strip+2)='l';cout<<"str="<<str<<endl;cout<<"strip="<<strip<<endl;//动态为字符型指针变量分配内存strip=new char(100);cout<<"strip=";cin>>strip; //用字符指针变量输入字符串cout<<"str="<<str<<endl;cout<<"strip="<<strip<<endl;}#include<iostream.h>main(){// 声明用于存放运动员号码的数组int h[]={1001,1002,1003,1004};// 声明用于存放运动员成绩的数组float x[]={12.3,13.1,11.9,12.1};//声明用于存放运动姓名的字符型指针数组char *p[]={"Wang hua","Zhang jian","Li wei","Hua ming"};//i,j,it是用做循环控制变量和临时变量int i,j,it;//ft 用做暂存变量float ft;//pt为字符型指针变量用做暂存指针变量char *pt;//用选择法对数组x进行排序,并相应调整数组h和p中的数据for (i=0;i<=3;i++)for (j=i+1;j<=3;j++)if (x[i]>=x[j]) {ft=x[i],x[i]=x[j],x[j]=ft;it=h[i],h[i]=h[j],h[j]=it;pt=p[i],p[i]=p[j],p[j]=pt;}//以下打印排序结果for (i=0;i<=3;i++)cout<<h[i]<<" ,"<<p[i]<<" ,"<<x[i]<<endl; }#include<iostream.h>main(){//声明指针数组char *colors[]={"Red","Blue","Yellow","Green"};//指向指针的指针变量char **pt;//通过指向指针的变量访问其指向的内容pt=colors;for (int i=0;i<=3;i++) {cout<<"pt="<<pt<<endl;cout<<"*pt="<<*pt<<endl;cout<<"**pt="<<**pt<<endl;pt++;}}#include<iostream.h>main(){//定义结构类型struct books{char title[20];char author[15];int pages;float price;} ;//声明结构变量struct books Zbk={"VC++ ","Zhang",295,35.5};books Wbk;//对结构变量的输出cout<<"Zbk:"<<endl;cout<<Zbk.title <<endl;cout<<Zbk.author<<endl;cout<<Zbk.pages<<endl;cout<<Zbk.price<<endl;cout<<"--------------------"<<endl;//对结构成员的运算Zbk.pages+=10;Zbk.price+=0.5;cout<<"Zbk.pages="<<Zbk.pages<<endl;cout<<"Zbk.price="<<Zbk.price<<endl;cout<<"--------------------"<<endl;//对结构变量的输入输出cout<<"Wbk.title =";cin>>Wbk.title;cout<<"Wbk.author=";cin>>Wbk.author;cout<<"Wbk.pages=";cin>>Wbk.pages;cout<<"Wbk.price=";cin>>Wbk.price;cout<<"Wbk:"<<endl;cout<<Wbk.title <<endl;cout<<Wbk.author<<endl;cout<<Wbk.pages<<endl;cout<<Wbk.price<<endl;cout<<"--------------------"<<endl;//结构变量之间的相互赋值books temp;temp=Wbk;cout<<"temp:"<<endl;cout<<temp.title<<endl;cout<<temp.author<<endl;cout<<temp.pages<<endl;cout<<temp.price<<endl;}#include<iostream.h>main(){int i;//定义结构类型struct student {int num;char name[10];float maths;float physics;float chemistry;double total;};//声明结构数组ststudent st[3];//从键盘上为结构数组输入值cout<<" num name maths physics chemistry "<<endl;for (i=0;i<3;i++){cout<<i+1<<" ";cin>>st[i].num;cin>>st[i].name;cin>>st[i].maths;cin>>st[i].physics;cin>>st[i].chemistry;}//计算每个学生的总成绩for (i=0;i<3;i++)st[i].total=st[i].maths+st[i].physics+st[i].chemistry;//输出结构数组各元素的值for (i=0;i<3;i++){cout<<"st["<<i<<"]: ";cout<<st[i].num<<'\t';cout<<st[i].name<<'\t';cout<<st[i].maths<<'\t';cout<<st[i].physics<<'\t';cout<<st[i].chemistry<<'\t';cout<<st[i].total<<endl;}}#include<iostream.h> main(){//定义结构类型struct human {char name[10];int sex;int age;};//声明结构变量和结构指针变量,并初始化struct human x={"WangPing",1,30},*p=NULL;//结构指针变量指向对象p=&x;//显示结构变量的值cout<<"="<<<<endl;cout<<"x.sex="<<x.sex<<endl;cout<<"x.age="<<x.age<<endl;//利用结构指针显示结构对象中的数据cout<<"(*p).name="<<(*p).name<<endl;cout<<"(*p).sex="<<(*p).sex<<endl;cout<<"(*p).age="<<(*p).age<<endl;cout<<"p->name="<<p->name<<endl;cout<<"p->sex="<<p->sex<<endl;cout<<"p->age="<<p->age<<endl;//通过结构指针为结构对象输入数据cout<<"name:";cin>>(*p).name;cout<<"sex:";cin>>(*p).sex;cout<<"age:";cin>>(*p).age;//显示结构变量的值cout<<"="<<<<endl;cout<<"x.sex="<<x.sex<<endl;cout<<"x.age="<<x.age<<endl;}include<iostream.h>main(){//定义结构类型struct human {char name[10];int sex;int age;};//声明结构变量和结构指针,并初始化struct human x={"WangPing",1,30},*p=&x;//利用结构指针显示结构中的数据cout<<"(*p).name="<<(*p).name<<endl;cout<<"(*p).sex="<<(*p).sex<<endl;cout<<"(*p).age="<<(*p).age<<endl;cout<<"-------------------------"<<endl;//利用new运算符为p分配内存p=new human;//从键盘上为p指向的结构对象赋值cout<<"p->name=";cin>>p->name;cout<<"p->sex=";cin>>p->sex;cout<<"p->age=";cin>>p->age;cout<<"-------------------------"<<endl;//显示p所指结构对象的值cout<<"p->name="<<p->name<<endl;cout<<"p->sex="<<p->sex<<endl;cout<<"p->age="<<p->age<<endl;cout<<"-------------------------"<<endl;//显示结构变量的值cout<<"="<<<<endl;cout<<"x.sex="<<x.sex<<endl;cout<<"x.age="<<x.age<<endl;//释放p指向的内存delete p;}#include<iostream.h>main(){//定义结构类型struct human {char name[10];int sex;int age;};//声明结构数组和结构指针变量,并初始化humanx[]={{"WeiPing",1,30},{"LiHua",1,25},{"LiuMin",0,23}},*p=NU LL;//用下标变量的输出结构数组的元素for (int i=0;i<3;i++){cout<<x[i].name<<'\t';cout<<x[i].sex<<'\t';cout<<x[i].age<<endl;}cout<<"----------------"<<endl;//用结构指针输出结构数组的元素for (p=x;p<=&x[2];p++){cout<<p->name<<'\t';cout<<p->sex<<'\t';cout<<p->age<<endl;}}#include<iostream.h>main(){//定义一个包含指针成员的结构类型struct test {char *str;int *ip;} x;//使用结构变量x中的整型指针ipx.ip=new int; //分配1个单元*(x.ip)=100;cout<<"x.ip:"<<x.ip<<'\t'<<*(x.ip)<<endl;cout<<"---------------"<<endl;delete x.ip;x.ip=new int[5]; //分配5个单元for(int i=0;i<5;i++)*(x.ip+i)=100+i;cout<<"x.ip:"<<endl;for(i=0;i<5;i++)cout<<x.ip+i<<'\t'<<(*(x.ip+i))<<endl;delete x.ip;cout<<"---------------"<<endl;//使用结构变量x中的字符型指针strx.str=new char('A'); //分配1个单元cout<<"x.str:"<<(*x.str)<<endl;cout<<"---------------"<<endl;delete x.str;x.str=new char[5]; //分配多个单元*x.str='G';*(x.str+1)='o';*(x.str+2)='o';*(x.str+3)='d';*(x.str+4)='\0';cout<<"x.str:"<<x.str<<endl;delete x.str;cout<<"---------------"<<endl;//在声明结构变量时初始化test y={"Very Good!",NULL};cout<<"y.str:"<<y.str<<endl;cout<<"y.ip:"<<y.ip<<endl;}#include<iostream.h>main(){//定义date结构struct date{int year;int month;int day;};//定义baby结构struct baby {int num;float weight;date birthday; // date为结构类型};//声明baby结构变量并初始化baby b1={10001,10,{2002,12,25}};//下列是baby结构变量b1的引用。
C语言期末考试编程题内含代码

倾情奉献---马杰1.打印出所有的“水仙花数”,并按照一行5个的格式输出。
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个“水仙花数”,因为153=1*1*1+5*5*5+3*3*3。
main(){int i,j,k;for(i=1;i<10;i++)for(j=0;j<10;j++)for(k=0;k<10;k++)if( (i*100+j*10+k)==((i*i*i)+(j*j*j)+(k*k*k)))printf("%d%d%d ",i,j,k);getch();}2.求1+2!+3!+...+20!的和#include<stdio.h>int main(){float i,index=1,sum=1;for(i=1;i<=20;i++){index*=i;//保存每一项的阶乘sum+=index;//加上每一项的阶乘}printf("%e\n",sum);return 0;}3.输入一个5位数,判断它是不是回文数。
即12321是回文数,个位与万位相同,十位与千位相同。
#include <stdio.h>#include <string.h>main(){int i,nLen,flag;char num[6];gets(num);nLen =strlen(num);for (i=0;i<nLen/2;i++){flag=0;if (num[i]==num[nLen-i-1])flag =1;}if (flag) puts("回文数");else puts("不是");}4. 求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并并按照一行5个的格式输出。
#include<stdio.h>void fun (int *a, int *n){int i;*n=0;for(i=1;i<=1000;i++)if(( i%7==0 || i%11==0 ) && (!( i%7==0 && i%11==0 ))){a[*n]=i;(*n)++;}}main(){int aa[1000],n,k;fun(aa,&n);for (k=0;k<n;k++)if ((k+1)%10==0) printf("\n");else printf("%5d",aa[k]);}5.编程列出200以内所有的素数,按照一行8个的格式输出,并求出所有素数的平均值,#include<math.h>main(){int m,i,k,n=0;for(m=2;m<=200;m++){k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0) break;if(i>=k+1){printf("%4d",m);n++;}if(n%8==0){printf("\n");}}printf("\n");}6、编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1+1/3+1/5...+1/n#include <iostream.h>#include <string.h>double fun1(double n){double sum=0;double m=0;for(int i=2; i<=n; i+=2){m=1/n;sum+=m;}return sum;}double fun2(double n){double sum=0;double m=0;for(int i=1; i<=n; i+=2){m=1/n;sum+=m;}return sum;}void main(){int num;cin>>num;if(num%2==0){cout<<fun1(num)<<endl;}else{cout<<fun2(num)<<endl;}}7、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。
C语言必背100代码,C语言必会100代码大全

C语⾔必背100代码,C语⾔必会100代码⼤全⼀、C语⾔初学者必学必会的C语⾔必背100代码⼀个C语⾔⼊门初学者如何学代码,读代码和写代码,我想学代码不知道⽅向谁能给我指明⼀个⽅向?对于c语⾔来说,要记得东西其实不多,基本就是⼏个常⽤语句加⼀些关键字⽽已。
你所看到的那些⼏千甚⾄上万⾏的代码,都是⽤这些语句和关键词来重复编写的。
只是他们逻辑功能不⼀样,那如何快速的上⼿C语⾔代码,建议多看多写,下⾯是⼩编整理的C语⾔必背100代码。
⼆、C语⾔学习相关C语⾔必背100代码展现已把⼤量C语⾔必背代码整理为⼀个压缩包关注微信公众号:“C和C加加” 回复:“YM” 即可获取1、C语⾔必背代码九九乘法表⽤C语⾔输出9*9成法⼝诀。
共9⾏9列,i控制⾏,j控制列。
2、C语⾔必背100代码之4×4数组下⾯程序的功能是将⼀个4×4的数组进⾏逆时针旋转90度后输出,要求原始数组的数据随机输⼊,新数组以4⾏4列的⽅式输出,请在空⽩处完善程序。
3、C语⾔必背100代码的相关古典问题有⼀对兔⼦,从出⽣后第3个⽉起每个⽉都⽣⼀对兔⼦,⼩兔⼦长到第三个⽉后每个⽉⼜⽣⼀对兔⼦,假如兔⼦都不死,问每个⽉的兔⼦总数为多少?已把⼤量C语⾔必背代码整理为⼀个压缩包关注微信公众号:“C和C加加” 回复:“YM” 即可获取兔⼦的规律为数列1,1,2,3,5,8,13,21…4、C语⾔必背100代码之素数判断101-200之间有多少个素数,并输出所有素数及素数的个数。
已把⼤量C语⾔必背代码整理为⼀个压缩包关注微信公众号:“C和C加加” 回复:“YM” 即可获取程序分析:判断素数的⽅法:⽤⼀个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
5、C语⾔必背代码之完数相关代码⼀个数如果恰好等于它的因⼦之和,这个数就称为“完数”。
例如6=1+2+3.编程找出1000以内的所有完数。
6、三⾓形打印的C语⾔必背100代码编程打印直⾓杨辉三⾓形7、C语⾔必背100代码之平均分问题通过键盘输⼊3名学⽣4门课程的成绩,分别求每个学⽣的平均成绩和每门课程的平均成绩。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
MessageBox.Show ("是闰年");
}
else
{
MessageBox.Show("不是闰年");
}
}
或办法
int a = int.Parse(textBox1 .Text );
string s = (a % 4 == 0 ? "该年份是闰年": "该年份是平年" );
}
else if(textBox2.Text ==("-"))
{
MessageBox.Show((num1-num2).ToString());
17)用while和do-while求1-100之间所有整数的和,积等17
18)类的创建和使用(类的声明,字段,属性和方法的添加,生成类的实例和使用其成员)17
19)format的用法18
1
private void button1_Click(object sender, EventArgs e)
{
intbai = i / 100;
if(i == bai * bai * bai + shi * shi * shi + ge * ge * ge)
{
s += i.ToString() +"\r\n";
}
}
MessageBox.Show(s,"你好漂亮");
}
}
6
private void button1_Click(object sender, EventArgs e)
{
float num1 = Convert.ToInt32(textBox1.Text);
float num2 = Convert.ToInt32(textBox3.Text);
if (textBox2.Text ==("+"))
{
MessageBox.Show((num1+num2).ToString());
{
a = i % 7;
if (a == 0)
{
sum = sum + i;
}
}
textBox1.Text = sum.ToString();
}
4
private void button1_Click(object sender, EventArgs e)
{
int a = Convert.ToInt32(textBox1.Text);
{
double a = double.Parse(txb_A.Text),
b = double.Parse(txb_B.Text),
c = double.Parse(txb_C.Text);
if (a == 0)
{
MessageBox.Show("方程的根是:" + (-c / b).ToString());
MessageBox.Show(s)
5
privatevoidbutton1_Click(objectsender,EventArgse)
{
strings ="水仙花数:"+"\r\n";
for(inti = 100; i < 1000; i++)
{
intge = i % 10;
intshi = i / 10 % 10;
{
sum = sum + i;
}
textBox1.Text = sum.ToString();
private void button1_Click(object sender, EventArgs e)
{
int sum = 0;
int a;
for (int i = 0; i <= 100; i++)
9)圆台的体积8
10)三角形的三边,求三角形的面积8
11)乘法口诀表9
12)字符串的统计(大写,小写字母,数字的个数)9
13)数值类型的转换:数值-字符串,字符串-数字,数值类型之间的显示转换,隐式转换10
14)遍历窗体上的组件14
15)随机数发生器的用法15
16)用switch判断成绩等级,改变窗体的背景颜色15
int s = int.Parse(textBox1.Text.Trim());
if (s >= 90 && s <= 100)
{
MessageBox.Show("优秀");
}
else if (s >= 80 && s < 90)
{
MessageBox.Show("良好");
}
else if (s >= 70 && s < 80)
}
else
{
double delta = Math.Pow(b, 2) - 4 * a * c;
if (delta >= 0)
{
double X1 = (-b + Math.Pow(delta, 0.5)) / 2 * a;
double X2 = (-b - Math.Pow(delta, 0.5)) / 2 * a;
{
int sum = 0;
for (int i = 0; i <= 100; i = i +1)
{
sum = sum + i;
}
textBox1.Text = sum.ToString();
}
求1~100之内所有偶数的和
int sum = 0;
for (int i = 0; i <= 100; i = i + 2)
1)2
2)一元二次方程求解2
3)1-100之间所有整数的和,能被某数整除的所有整数的和,积3
4)闰年的判断4
5)水仙花数4
6)简单计算器5
7)一维数组的声明、初始化、赋值、遍历(求数组所有元素的和,积,最大值,最小值等统计数值)6
8)二维数组的声明、初始化、赋值、遍历(求数组所有元素的和,积,最大值,最小值等统计数值)7
string temp = "X1="+X1.ToString()+"\r\nX2="+X2.ToString();
MessageBox.Show(temp);
}
else
{
MessageBox.Show("没有实数根!");
}
}
}
3
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("中");
}
else if (s >= 60 && s < 70)
{
MessageBox.Show("及格");
}
else
{
MessageBox.Show("不及格");
}
}
2
private void button1_Click(object sender, EventArgs e)