C经典例题
C语言经典例题以及答案
作业一一、求一个任意边长的矩形面积。
#include<stdio.h>voidmain(){intw,h,sum;scanf("%d%d",&w,&h);sum=w*h;printf("area=%d\n",sum);}二、求一个任意半径的圆的面积及周长。
#definePI#include<stdio.h>voidmain(){floatr,area,c;scanf("%f",&r);area=PI*r*r;c=2*PI*r;printf("area=%f\ncircle=%f\n",area,c);}三、已知:w=5,y=4,z=2, 求表达式:w*y/z的值,并输出。
##include<stdio.h>voidmain(){intw,y,z,r;w=5;y=4;z=2;r=w*y/z;printf("%5d",r);}作业二一、从键盘上输入三个数,求出其中的最大值,并输出。
#include<stdio.h>voidmain(){inta,b,c,max;scanf("%d%d%d",&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf("max=%d\n",max);}二、求sin300。
+sin600+cos300+cos600之和。
(注意:)#include<stdio.h>#definePI#include<math.h>voidmain(){floata,b,sum;a=30*PI/180;b=60*PI/180;sum=sin(a)+sin(b)+cos(a)+cos(60);printf("total=%f\n",sum);}三、比较两个数的大小。
链表c语言经典例题
链表c语言经典例题
链表是计算机科学中的经典数据结构之一,常用于存储和操作动态数据。
以下是一些常见的链表例题,可以帮助理解链表的基本操作和应用。
1. 链表的创建:
- 创建一个空链表。
- 创建一个包含指定节点值的链表。
2. 链表的插入操作:
- 在链表的头部插入一个节点。
- 在链表的尾部插入一个节点。
- 在指定位置插入一个节点。
3. 链表的删除操作:
- 删除链表的头节点。
- 删除链表的尾节点。
- 删除指定数值的节点。
4. 链表的查找操作:
- 查找链表中指定数值的节点。
- 查找链表的中间节点。
5. 链表的逆序操作:
- 反转整个链表。
- 反转链表的前 N 个节点。
- 反转链表的一部分区间内的节点。
6. 链表的合并操作:
- 合并两个有序链表,使其有序。
- 合并 K 个有序链表,使其有序。
7. 链表的环检测:
- 判断链表中是否存在环,若存在,则返回环的起始节点。
8. 链表的拆分操作:
- 将一个链表按照奇偶位置拆分成两个链表。
以上是一些链表的经典例题,通过解答这些例题,可以加深对链表结构和基本操作的理解。
在编写对应的 C 语言代码时,需要注意链表节点的定义、指针的使用以及内存的动态分配和释放等问题。
信息学奥赛经典算法C语言经典例题100例
信息学奥赛经典算法C语言经典例题100例经典C源程序100例1.【程序1】三位数组合题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++) /*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);} }==============================================================2.【程序2】条件判断题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus); }==============================================================3.【程序3】完全平方数题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
c语言课程设计经典例题推箱子
贪吃蛇源代码完美运行,结尾附图#include <stdio.h>#include <conio.h>#include <stdlib.h>#include <windows.h>int printMap(int map[][16]);void moveBox(int map[][16],int x,int y,int select,int map2[][16]); int insert(int map[][16],int map2[][16],int sum);void UI();void img1();void img2();void img3();void img4();void img5();void img6();void color(int b) //颜色函数{HANDLE hConsole =GetStdHandle((STD_OUTPUT_HANDLE)) ;SetConsoleTextAttribute(hConsole,b) ;}void img1(){int map2[14][16];int i,j,sum=0;int map[14][16]={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0},{0,0,0,0,0,0,1,3,1,0,0,0,0,0,0,0},{0,0,0,1,3,2,4,6,1,1,1,0,0,0,0,0},{0,0,0,1,1,1,4,2,4,3,1,0,0,0,0,0},{0,0,0,0,0,1,2,1,1,1,1,0,0,0,0,0},{0,0,0,0,0,1,3,1,0,0,0,0,0,0,0,0},{0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},};for(i=0;i<14;i++)for(j=0;j<16;j++){map2[i][j]=map[i][j];if(map[i][j] == 3 || map[i][j] == 5)sum++;}insert(map,map2,sum);img2();}void img2(){int map2[14][16];int i,j,sum=0;int map[14][16]={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0},{0,0,0,0,1,2,6,3,3,3,1,0,0,0,0,0},{0,0,0,0,1,2,2,2,2,2,1,1,0,0,0,0},{0,0,0,1,1,1,4,2,2,2,2,1,0,0,0,0},{0,0,0,1,2,2,2,2,2,2,2,1,0,0,0,0},{0,0,0,1,2,4,2,1,4,1,2,1,0,0,0,0},{0,0,0,1,2,2,2,1,2,2,2,1,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},};for(i=0;i<14;i++)for(j=0;j<16;j++){map2[i][j]=map[i][j];if(map[i][j] == 3 || map[i][j] == 5)sum++;}insert(map,map2,sum);img3();}void img3(){int map2[14][16];int i,j,sum=0;int map[14][16]={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0},{0,0,0,0,1,2,2,6,1,0,0,0,0,0,0,0},{0,0,0,0,1,2,4,4,1,0,1,1,1,0,0,0},{0,0,0,0,1,2,4,2,1,0,1,3,1,0,0,0},{0,0,0,0,1,1,1,2,1,1,1,3,1,0,0,0},{0,0,0,0,0,1,1,2,2,2,2,3,1,0,0,0},{0,0,0,0,0,1,2,2,2,1,2,2,1,0,0,0},{0,0,0,0,0,1,2,2,2,1,1,1,1,0,0,0},{0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},};for(i=0;i<14;i++)for(j=0;j<16;j++){map2[i][j]=map[i][j];if(map[i][j] == 3 || map[i][j] == 5)sum++;}insert(map,map2,sum);img4();}void img4(){int map2[14][16];int i,j,sum=0;int map[14][16]={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0},{0,0,0,0,0,0,1,2,2,1,0,0,0,0,0,0},{0,0,0,0,0,1,1,2,2,1,0,0,0,0,0,0},{0,0,0,0,0,1,6,4,2,1,0,0,0,0,0,0},{0,0,0,0,0,1,1,4,2,1,1,0,0,0,0,0},{0,0,0,0,0,1,1,2,4,2,1,0,0,0,0,0},{0,0,0,0,0,1,3,4,2,2,1,0,0,0,0,0},{0,0,0,0,0,1,3,3,5,3,1,0,0,0,0,0},{0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},};for(i=0;i<14;i++)for(j=0;j<16;j++){map2[i][j]=map[i][j];if(map[i][j] == 3 || map[i][j] == 5)sum++;}insert(map,map2,sum);img5();}void img5(){int map2[14][16];int i,j,sum=0;int map[14][16]={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0},{0,0,1,1,1,1,2,2,2,2,2,1,0,0,0,0},{0,0,1,2,2,2,3,1,1,1,2,1,0,0,0,0},{0,0,1,2,1,2,1,2,2,2,2,1,1,0,0,0},{0,0,1,2,1,2,4,2,4,1,3,2,1,0,0,0},{0,0,1,2,1,2,2,5,2,2,1,2,1,0,0,0},{0,0,1,2,3,1,4,2,4,2,1,2,1,0,0,0},{0,0,1,1,2,2,2,2,1,2,1,2,1,1,1,0},{0,0,0,1,2,1,1,1,3,2,2,2,2,6,1,0},{0,0,0,1,2,2,2,2,2,1,1,2,2,2,1,0},{0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},};for(i=0;i<14;i++)for(j=0;j<16;j++){map2[i][j]=map[i][j];if(map[i][j] == 3 || map[i][j] == 5)sum++;}insert(map,map2,sum);img5();}void img6(){int map2[14][16];int i,j,sum=0;int map[14][16]={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0},{0,0,0,0,0,1,3,2,3,2,3,1,0,0,0,0},{0,0,0,0,0,1,2,4,4,4,2,1,0,0,0,0},{0,0,0,0,0,1,3,4,6,4,3,1,0,0,0,0},{0,0,0,0,0,1,2,4,4,4,2,1,0,0,0,0},{0,0,0,0,0,1,3,2,3,2,3,1,0,0,0,0},{0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},};for(i=0;i<14;i++)for(j=0;j<16;j++){map2[i][j]=map[i][j];if(map[i][j] == 3 || map[i][j] == 5)sum++;}insert(map,map2,sum);}int insert(int map[][16],int map2[][16],int sum){int i,j;int x,y; //人的位置char op; //所按下的方向键int num = 0; //还剩下几个箱子没有推向目的地while(1){for(i=0;i<14;i++){for(j=0;j<16;j++)if(map[i][j] == 6)goto found;}found:x = i;y = j;system("cls");num = printMap(map);if(num == sum){printf(" 你通关了....\n");return 0;}else{op = getch();if((op == 'Q') || (op =='q')){printf("退出....\n");return 2;}op = getch();}switch(op) {case 72: //上箭头moveBox(map,x,y,1,map2);break;case 75: //左箭头moveBox(map,x,y,2,map2);break;case 77: //右箭头moveBox(map,x,y,3,map2);break;case 80: //下箭头moveBox(map,x,y,4,map2);break;default:break;}}}int printMap(int map[][16]){int i,j;int count = 0;for(i=0;i<14;i++){for(j=0;j<16;j++){switch(map[i][j]){case 0: //空地printf(" ");break;case 1: //墙color(13);printf("■");break;case 2: //内部空地printf(" ");break;case 3: //目的地color(11);printf("×");break;case 4: //箱子color(8);printf("◎");break;case 5: //箱子推到目的地后显示count++;color(9);printf("☆");break;case 6: //小人color(10);printf("♀");break;}}printf("\n");}printf("\n\n");printf("按方向键操作游戏,按Q退出!\n");return count;}void moveBox(int map[][16],int x,int y,int select,int map2[][16]) {int x1,y1; //下个位置的坐标int x2,y2; //下下个位置的坐标switch(select) {case 1: //向上移动x1 = x - 1;y1 = y;x2 = x - 2;y2 = y;break;case 2: //向左移动x1 = x;y1 = y - 1;x2 = x;y2 = y - 2;break;case 3: //向右移动x1 = x;y1 = y + 1;x2 = x;y2 = y + 2;break;case 4: //向下移动x1 = x + 1;y1 = y;x2 = x + 2;y2 = y;break;default:break;}//operate mapswitch(map[x1][y1]){case 1: //墙,不动break;case 2: if(map2[x][y] == 3){//空格,分情况变换map[x1][y1] = 6;map[x][y] = 3;}else{map[x1][y1] = 6;map[x][y] = 2;}break;case 3:if(map2[x][y] == 3){//目的地,分情况变换map[x1][y1] = 6;map[x][y] = 3;}else{map[x1][y1] = 6;map[x][y] = 2;}break;case 4:if(map[x2][y2] == 3){map[x2][y2] = 5;map[x1][y1] = 6;if(map2[x][y] == 2 || map2[x][y] == 6)map[x][y] = 2;else if(map2[x][y] == 3)map[x][y] = 3;elsemap[x][y] = 2;}else if(map[x2][y2] == 2 || map2[x][y] == 6){map[x2][y2] = 4;map[x1][y1] = 6;if(map2[x][y] == 2 || map2[x][y] == 6)map[x][y] = 2;else if(map2[x][y] == 3)map[x][y] = 3;elsemap[x][y] = 2;}break;case 5:if((map2[x][y] == 2 || map2[x][y] == 6) && map2[x2][y2] == 3){map[x2][y2] = 5;map[x1][y1] = 6;map[x][y] = 2;}else if(map2[x][y] == 3 && map[x2][y2] == 3){map[x2][y2] = 5;map[x1][y1] = 6;map[x][y] = 3;}else if(map2[x][y] == 5 && map[x2][y2] == 3){map[x2][y2] = 5;map[x1][y1] = 6;map[x][y] = 3;map2[x][y] = 3;}else if((map2[x][y] == 2 || map2[x][y] == 6) && map2[x2][y2] == 2){map[x2][y2] = 4;map[x1][y1] = 6;map[x][y] = 2;map2[x1][y1] = 3;}//箱子推到目的地后break;default:break;}}void UI(){char ch,num;color(11);printf("\n\t\t\t|--------------1.开始--------------|\n");printf("\n\t\t\t|--------------2.选关--------------|\n");printf("\n\t\t\t|--------------3.退出--------------|\n");ch=getch();if(ch == '1')img1();if(ch == '2'){printf("请输入关数(1--6):");num=getch();switch(num){case '1' : img1();break;case '2' : img2();break;case '3' : img3();break;case '4' : img4();break;case '5' : img5();break;case '6' : img6();break;default : printf("entererror!\n");Sleep(1000);exit(0);break;}}if(ch == '3'){system("cls");exit(0);}}void main(){UI();}。
C语言几个经典例题
void main( ) { printf( "输入一个字符,将其转换成大写字符后输出\n\n" ); while( 1 ) { char x; scanf( "%c", &x ); if (x >= 'a' && x <= 'z') x = x - 'a' + 'A'; printf( "%c", x ); } } 11. 已知变量 a、b、c 关系为 a+b=c,编写程序完成下表的填写 12.输入一元二次方程的三个系数,输出方程的根(实根、虚根) 。 #include<stdio.h> #include<math.h> void main( ) { printf( "计算一元二次方程的根\n\n" ); while( 1 ) { float a, b, c, det ; printf( "输入三个系数:" ); scanf( "%f%f%f", &a, &b, &c ); det = b*b - 4*a*c; if (a == 0 && b == 0) printf( "系数错误"); else if (a == 0) printf( "x = %f\n", -c/b ); else if (det < 0) { det = sqrt(-det); printf( "x1 = %f printf( "x2 ``= %f } else { det = sqrt(det); printf( "x1 = %f\n", (-b+det)/2/a ); printf( "x2 = %f\n", (-b-det)/2/a ); } printf( "\n\n"); } } 13. 输入一个运算符和两个实数,并输出计算结果,例如: + * 1 2 3 31 => 1+3=4 => 2*31=62 => 12-(-10)=22 + %f i\n", -b/2/a, det/2/a ); %f i\n", -b/2/a, det/2/a );
100个经典c语言例题(带答案)
100个经典c语言例题(带答案)经典C源程序100例- -1 经典C源程序100例【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:m...C语言经典程序100例2009-02-26 19:44 | (分类:默认分类)经典C源程序100例- -1 经典C源程序100例【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++)/*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
c语言循环例题
c 语言循环例题1.抓交通肇事犯。
一辆卡车违反交通规则,撞人后逃逸。
现场有三位目击者,但都没记住车号,只记下车号的一些特征。
甲说:牌照的前两位数字是相同的; 乙说: 牌照的后两位数字是相同的,但与前两位不同;丙是位数学家,他说: 四位的车号刚好是一个整数的平方。
请根据以上线索求出车号。
2.假设银行一年整存零取的月息为0.63%。
现在某人手中有一笔钱,他打算在今后的一年中每年的年底取出1000 元,到第五年时刚好取完,请算出他存钱时应存入多少。
3.日本著名数学游戏专家中村义作教授提出这样一个问题:父亲将2520个桔子分给六个儿子。
分完后,父亲说: “老大将分给你的桔子了1/8 给老二; 老二拿到后,连同原先的桔子分1/7 给老三; 老三拿到后,连同原先的桔子分1/6 给老四;老四拿到后,连同原先的桔子分1/5 给老五; 老五拿到后,连同原先的桔子分1/4 给老六; 老六拿到后,连同原先的桔子分1/3 给老大”。
结果大家手中的桔子正好一样多。
问六兄弟原来手中各有多少桔子。
4.个位数为6,且能被3整除的五位数共有多少个,分别把它们输出在屏幕上。
5.8 除不尽的自然数。
一个自然数被8除余1,所得商被8除也余1,再将第二次的商被8除后余7,最后得到的一个商为a。
又知这个自然数被17除余4,所得的商被17除作15,最后得到的一个商是a的2倍。
求这个自然数。
6.4位反序数。
设N是一个四位数,它的9倍恰好是其反序数,求N7.完全数。
如果一个数恰好等于它的因子之和,则称该数为完全数。
如:6 的因子是1、2、3,而6=1+2+3,则 6 是个“完全数”。
试求出1000 以内的全部“完全数”。
8.亲密数。
如果整数A的全部因子(包括1但不包括A本身)之和等于B,且整数B的全部因子(包括1,但不包括A本身)之和等于A,则将整数A和B称为亲密数。
求3000 以内的全部亲密数。
9.求任意两个正整数的最大公约数和最小公倍数。
10.新娘和新郎。
C语言经典例题100例
==============================================================
【程序3】
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
{
printf("%-5d",n);
}
}
printf("\n");
}
==============================================================
k[n]=i;
}
}
if(s==0)
{
printf("%d is a wanshu",j);
}
}}
==============================================================
【程序10】
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;
C语言经典例题100例
Tubro C programming for HNCRE 20051题:100个学生一起买小吃,共花钱100元,其中每个大学生花5元,每个中学生花3元,每3个小学生花1元,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生为0的解)?程序:main( ){ int a,b,c;for(a=1;a<=20;a++)for(b=1;b<=33;b++){ c=100—a—b;if((20*a+33*b+c/3)= =100)printf(“%d,%d,%d\n”,a,b,c);}getch( );}答案:6种:3,20,77;4,18,78;8,11,81;11,6,83;12,4,84.2题:50个小学生按1至50序号顺时针围成一圈,做出局游戏,老师站在圈外逆时针从最后一个人数起,每数到5时,这人从圈里出来,继续数1,2,3,4,5,数到第5个学生时,他就出局,已出局的位置不再参加记数,直至所有的学生出局为止,问最后一个出局的学生序号是多少号?程序:main(){int i,k,sum,l,t=0;int a[50];clrscr();for(i=1;i<=50;i++)a[i]=1;for(k=1,sum=0,l=0;k<=50;k++){for(i=50;i>0;i--){sum+=a[i];if(sum==5) {sum=0;l++;a[i]=0;}if(l==49) {t=1;break;}}if(t==1)break;}for(i=1;i<=50;i++){if(a[i]==1) printf("%d",i);}getch();}答案:32号3题:50元兑换成5元,2元和1元的计算方法有多少种?程序:main( ){ int x,f,t,n;x=0;f=0;while(f<=10){t=0;while (t<=25){n=50—f*5—T*2;if(n>=o) x++;t++:}f++;}printf(“%d”,x);}答案:1464.A、B、C三个正整数,当满足1/A*A+1/B*B=1/C*C关系时,称为倒勾股数。
C语言穷举法经典例题
令z=100-x-y 1%)
只进行101×101= 10201 次运算(前者的
第3章 程序控制结构
第3章 程序控制结构
继续优化
void main() 取x<=14,y<=25 只进行 { 15×26= 390 次运算 int x,y,z; for (x=0;x<=14;x++) for (y=0;y<=25;y++) if (7*x+4*y==100 ) { z=100-x-y; printf("cocks=%d,hens=%d,chickens=%d\n",x,y,z); } }
第3章 程序控制结构
百元买百鸡问题分析
void main() 结果:x=0,y=25,z=75 { x=4,y=18,z=78 int x,y,z; x=8,y=11,z=81 for (x=0;x<=100;x++) x=12,y=4,z=84 for (y=0;y<=100;y++) for (z=0;z<=100;z++) { if (z%3==0 &&x+y+z==100 && 5*x+3*y+z/3==100 ) printf("x=%d,y=%d,z=%d\n",x,y,z); } }
第3章 程序控制结构
穷举法求解韩信点兵
#include <stdio.h> void main() { int x; for (x=1; ;x++) { if (x%5==1 && x%6==5 && x%7==4 && x%11==10) { printf(" x = %d\n", x); } } } /*死循环——永远不会退出的循环*/
c语言迭代法经典例题会考
c语言迭代法经典例题会考摘要:1.C 语言迭代法的概念2.经典例题解析3.会考注意事项正文:【1.C 语言迭代法的概念】C 语言迭代法是一种编程方法,主要用于解决一些复杂的问题,比如方程组、数列等。
迭代法通过重复执行一系列操作,逐步逼近最终结果。
在C 语言中,迭代法通常使用循环结构来实现。
【2.经典例题解析】例题1:求解方程组{x + y = 5;x - y = 1;}解:我们可以使用迭代法求解这个方程组。
首先,我们定义两个变量a 和b,分别表示x 和y 的初值。
然后,我们使用while 循环,只要a 和b 的值不等于方程组的解,就一直循环。
在循环中,我们根据方程组更新a 和b 的值。
a = x;b = y;while (a!= 5 && b!= 1) {x = a + b / 2;y = a - b / 2;a = x;b = y;}例题2:求解斐波那契数列求解斐波那契数列的第n 项。
解:我们可以使用迭代法求解斐波那契数列。
定义一个变量a 表示斐波那契数列的第n 项。
初始时,a 等于0。
然后,我们使用while 循环,只要a 不等于斐波那契数列的第n 项,就一直循环。
在循环中,我们根据斐波那契数列的定义更新a 的值。
a = 0;while (a!= fibonacci(n)) {a = a * (n - 1) / n;}【3.会考注意事项】在会考中,我们需要注意以下几点:1.熟悉C 语言的基本语法和数据结构,如循环结构、变量、数组等。
2.理解迭代法的原理,能够根据问题特点选择合适的迭代方法。
3.注意代码的规范性,如变量命名、注释、缩进等。
排列组合中的c和a怎么区分经典例题
排列组合中的c和a怎么区分经典例题
排列组合中的C和A可以通过以下经典例题进行区分:
例1:有一个班级有50个学生,现在需要从中选取3个学生参加比赛。
问有多少种不同的选取方式?
解:这里的问题是组合问题,即从50个学生中选出3个学生,不考虑选取顺序的不同。
因此,需要使用组合公式C(n,k),其中n=50,k=3。
计算结果是C(50,3)=1014种不同的选取方式。
例2:有一个班级有50个学生,现在需要从中选取3个学生参加比赛,并且要求这三个学生的选取顺序不同。
问有多少种不同的选取方式?
解:这里的问题是排列问题,即从50个学生中选出3个学生,并且需要考虑选取顺序的不同。
因此,需要使用排列公式A(n,k),其中n=50,k=3。
计算结果是A(50,3)=50×49×48=9800种不同的选取方式。
因此,排列和组合的主要区别在于是否考虑选取顺序的不同。
排列需要考虑顺序的不同,而组合不需要考虑顺序的不同。
(C语言)经典例题与实验参考答案
#include <stdio.h> void main( ) { float r,r1,r2,r3; printf("Input r1,r2,r3: "); scanf("%f%f%f", &r1,&r2,&r3); r=1/(1/r1+1/r2+1/r3); printf("r=%.2f\n", r); } 注意: 注意: 变量的类型;变量名不能带下标或汉字。 1. 变量的类型;变量名不能带下标或汉字。 scanf、printf函数的格式 函数的格式。 2. scanf、printf函数的格式。 数学公式的表示(不能赋值给表达式)。 3. 数学公式的表示(不能赋值给表达式)。 输入输出有文字说明;且尽量不要使用汉字。 4. 输入输出有文字说明;且尽量不要使用汉字。
作业二
1、输入一个华氏温度,要求输出摄氏温度。公式为: 输入一个华氏温度,要求输出摄氏温度。公式为:
5 C = (F − 32 ) 9
#include <stdio.h> void main( ) { 变量定义 输入 处理 输出 } 5/9.0*(F-32) 5.0/9.0*(F-32) 5*(F-32)/9 float C,F; scanf("%f", &F); C=5.0/9*(F-32); printf("%f\n",C); #include <stdio.h> void main( ) { float C,F; printf("Input F:"); scanf("%f",&F); C=5.0/9*(F-32); printf("C=%.2f\n",C); }
C语言编程经典例题
【程序92】
题目:时间函数举例2
1.程序分析:
2.程序源代码:
/*calculate time*/
#include “time.h“
#include “stdio.h“
main()
{ time_t start,end;
int i;
start=time(NULL);
break;}
}
}
【程序81】
题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
1.程序分析:
2.程序源代码:
output(long b,long i)
{ printf(“\n%ld/%ld=809*%ld+%ld“,b,i,i,b%i);
main()
{struct man *q,*p;
int i,m=0;
p=person;
for (i=0;i〈N;i++)
{if(m〈p-〉age)
q=p++;
m=q-〉age;}
printf(“%s,%d“,(*q).name,(*q).age);
}
【程序79】
题目:字符串排序。
printf(ctime(〈)); /*english format output*/
printf(asctime(localtime(〈)));/*tranfer to tm*/
printf(asctime(gmtime(〈))); /*tranfer to Greenwich time*/
c语言字符串经典例题
c语言字符串经典例题含解答共5道当提到经典的C 语言字符串例题时,通常涉及字符串的基本操作、处理、以及一些算法。
以下是其中的5道经典例题及其解答:1. 逆序输出字符串题目:编写一个程序,输入一个字符串,然后逆序输出该字符串。
解答:```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("Enter a string: ");gets(str);printf("Reversed string: ");for (int i = strlen(str) - 1; i >= 0; i--) {printf("%c", str[i]);}return 0;}```2. 统计字符串中的字符个数题目:编写一个程序,输入一个字符串,统计其中字母、数字和其他字符的个数。
解答:```c#include <stdio.h>#include <ctype.h>int main() {char str[100];printf("Enter a string: ");gets(str);int letters = 0, digits = 0, others = 0;for (int i = 0; str[i] != '\0'; i++) {if (isalpha(str[i]))letters++;else if (isdigit(str[i]))digits++;elseothers++;}printf("Letters: %d\n", letters);printf("Digits: %d\n", digits);printf("Other characters: %d\n", others);return 0;}```3. 查找字符串中的子字符串题目:编写一个程序,输入一个主字符串和一个子字符串,判断子字符串是否在主字符串中,并输出匹配位置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东风冷雪提供/* 1.0用函数模板实现任何两个简单类型数据交换,并给出实例加以验证!(请先预习教材函数模板相关知识) */#include<iostream>using namespace std;template<class T>void change(T*x,T*y){T temp;temp=*x;*x=*y;*y=temp;}int main(){int a,b;float c,d;cout<<"输入二个整数a,b :";cin>>a>>b;change(&a,&b);cout<<"二个整数交换结果为:"<<a<<" "<<b<<endl;cout<<"输入二个小数c,d :";cin>>c>>d;change(&c,&d);cout<<"二个小数交换结果:"<<c<<" "<<d<<'\n';return 0;}/* 2.定义内联函数,判断一个字符是否为数字字符。
*/#include<iostream>using namespace std;inline void p(char a){if('0'<a&&a<'9'||a=='0'||a=='9'){cout<<"是数字字符"<<endl;}else cout<<"不是数字字符"<<endl;}int main(){char s;cout<<"输入一个字符 ";cin>>s;p(s);return 0;}/*3.0 编写三个名为add的重载函数,分别实现两个整数、两个实数和两个复数相加。
*/#include<iostream>using namespace std;struct complex{int r_real;int r_imagine;};typedef struct complex comp;comp e,f;int add(int x,int y){return x+y;}double add(double x,double y){return x+y;}void add(comp e,comp f){int z1,z2;z1=e.r_real+f.r_real;z2=e.r_imagine+f.r_imagine;cout<<"二个复数相加的结果为"<<z1<<"+"<<z2<<"i"<<endl; }int main(){int a,b;double c,d;cout<<"输入二个整数a,b"<<" ";cin>>a>>b;cout<<"a+b="<<add(a,b)<<endl;cout<<"输入二个实数C和d"<<" ";cin>>c>>d;cout<<"a+b="<<add(c,d)<<endl;cout<<"输入第一个复数的实部与虚部 ";cin>>e.r_real>>e.r_imagine;cout<<"输入第二个复数的实部与虚部 ";cin>>f.r_real>>f.r_imagine;add(e,f);}/*4.0 实现《数据结构》中任意结构中的动态申请空间操作。
*/ #include<iostream>#include<string>using namespace std;struct student{string name;char num [20];char sex[5];};typedef struct student str;int main(){void print(); //动态数组申请print();cout<<endl<<endl;void prstr(); ////动态结构体申请prstr();return 0;}void print(){int m,i,j;int *p;cout<<"输入动态数组的长度:";cout<<"m=";cin>>m;p=new int[m];cout<<"输入数组的元素:";for(i=0;i<m;i++)cin>>p[i];for(j=0;j<m;j++)cout<<p[j]<<" ";delete[] p;}void prstr(){int n;int i,j;str st;cout<<"输入结构体数组的个数:";cout<<"n=";cin>>n;str *p=new str[n];cout<<"输入student的姓名,学号,性别"<<endl;for(i=0;i<n;i++)cin>>p[i].name>>p[i].num>>p[i].sex;for(j=0;j<n;j++)cout<<p[j].name<<" "<<p[j].num<<" "<<p[j].sex<<endl;delete []p;}/*5.输入两个实数,输出其中较大的数。
其中求两个实数中的较大数用函数完成,参数传递用引用传参(形参设为引用)。
*/#include<iostream>using namespace std;int main(){double a,b;double max(double &x,double &y);cout<<"输入二个实数 ";cin>>a>>b;cout<<"max="<<max(a,b)<<endl;return 0;}double max(double &x,double &y){double m=x>y?x:y;return m;}/*6.0输入3个串,要求按字母由小到大顺序输出,比较串的功能用函数实现。
例如:string s; s="sjdja"; cin>>s; cout<<s;(使用string要加载头文件string)。
*/#include<iostream>#include<string>using namespace std;int main(){string s1,s2,s3;cout<<"输入串一:";cin>>s1;cout<<"输入串二:";cin>>s2;cout<<"输入串三:";cin>>s3;void change(string &x,string &y,string &z); change(s1,s2,s3);cout<<s1<<" "<<s2<<" "<<s3<<endl;return 0;}void change(string &x,string &y,string &z) {if(x>y){string temp1;temp1=y;y=z;z=temp1;}if(x>z){string temp2;temp2=z;z=x;x=temp2;}if(y>z){string temp3;temp3=z;z=y;y=temp3;}}。