资源描述:
《c语言趣味编程实例.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1、编程序求5X+2Y+Z=50的所有非负整数解。#includeintmain(){intx,y,z;intcount=0;for(x=0;5*x<=50;x++)for(y=0;2*y<=50;y++)for(z=0;z<=50;z++){if(5*x+2*y+z==50){count++;printf("%d:",count);printf("x=%d,y=%d,z=%d",x,y,z);printf("");}}return0;}2、把25个字母A、B 、C、··· 、X、Y按如下要求打印出来:从最中间的字母M开始打印,然后一左一右依次打印出其它字母,即
2、M,L,N,K,O,...。 要求:初始化时按字母表顺序赋值。#includeintmain(){charx[]="ABCDEFGHIJKLMNPQRST";intk;intn=0;while(x[n]){n++;if(x[n]=='M'){k=n;break;}}printf("%c,",x[k]);for(inti=1;i<=12;i++)if(i<=11)printf("%c,%c,",(x[k]-i),(x[k]+i));elseprintf("%c,%c。",(x[k]-i),(x[k]+i));printf("");return0;}3、某单位
3、排队形,开始排成3路纵队,末尾多出了2人。后改成5路纵队,末尾又多出了3人,最后改成7路纵队,正好没有余数。编程序求出该单位至少有多少人。#includeintmain(){intstaff_num=7;//该单位至少有7人。while(1){if(staff_num%3==2&&staff_num%5==3&&staff_num%7==0){printf("该单位至少有%d人。",staff_num);break;}staff_num++;}printf("");return0;}4、将一个6×6数组的第一行、第六行、主对角线和副对角线上的元素都存入1,其余的
4、元素都存入0。请编程序实现。要求:1)不许对数组初始化。2)尽量少用循环。#includeintmain(void){inta[6][6];intcount=0;for(inti=0;i<6;i++)for(intj=0;j<6;j++){count++;if(i==j
5、
6、i==0
7、
8、i==5)a[i][j]=1;elsea[i][j]=0;printf("a[%d][%d]=%d",i,j,a[i][j]);if(count%6==0)printf("");}return0;}5.打印空心菱形,图形如下:其中行数可以从控制台输入,可变的,可以打印(1-
9、n)层。#includevoidmain(){intlay;printf("请输入要打印的层数(菱形的半边):");//表示有多少层,层数由用户输入,图例中lay=4scanf_s("%d",&lay);//vs2010以后版本scanf安全问题会报错。//以下代码打印菱形的上半部for(inti=1;i<=lay;i++){for(intk=1;k<=lay-i;k++){printf("");}//每行星号个数for(intj=1;j<=2*i-1;j++){if(j==1
10、
11、j==2*i-1)printf("*");elseprintf("");}//打印换行
12、printf("");}//以下代码打印菱形的下半部for(inti=lay+1;i<=2*lay-1;i++){for(intk=1;k<=i-lay;k++){printf("");}for(intj=1;j<=2*lay-2*(i-lay)-1;j++){if(j==1
13、
14、j==(2*lay-2*(i-lay)-1))printf("*");elseprintf("");}//打印换行printf("");}}6.打印实心菱形,与5题类似,如下图例#includevoidmain(){intlay;printf("请输入要打印的层数(菱形的半边):")
15、;//表示有多少层scanf_s("%d",&lay);//vs2010以后版本scanf安全问题会报错。//以下代码打印菱形的上半部for(inti=1;i<=lay;i++){for(intk=1;k<=lay-i;k++){printf("");}//每行星号个数for(intj=1;j<=2*i-1;j++){printf("*");}//打印换行printf("");}//以下代码打印菱形的下半部for(inti=lay+1;i<=2*lay