C语言--小例题
1 完倍数 2 #include <stdio.h> 3 void main() 4 { 5 int i,j,k; 6 for(i=1;i<=1000;i++) 7 { 8 k=0; 9 for(j=1;j<i;j++) 10 { 11 if(i%j==0) 12 { 13 k=k+j; 14 } 15 } 16 if(i==k) 17 { 18 printf("%d\t",j); 19 } 20 } 21 } 22 23 1000以内最大49的倍数是几?是第几个数? 24 #include <stdio.h> 25 void main() 26 { 27 int i=1,j,t=0; 28 while(i<=1000) 29 { 30 if(i%49==0) 31 { 32 j=i; 33 t+=1; 34 } 35 i++; 36 } 37 printf("%d %d\t",j,t); 38 } 39 40 1000以内49的所有倍数 41 #include <stdio.h> 42 void main() 43 { 44 int i=1; 45 while(i<=1000) 46 { 47 if(i%49==0) 48 { 49 printf("%d\t",i); 50 } 51 i++; 52 } 53 } 54 55 1000以内49的最大倍数 56 #include <stdio.h> 57 void main() 58 { 59 int i=1,j; 60 while(i<=1000) 61 { 62 if(i%49==0) 63 { 64 j=i; 65 } 66 i++; 67 } 68 printf("%d\t",j); 69 70 } 71 72 100以内1加到多少刚好超过100? 73 #include <stdio.h> 74 void main() 75 { 76 int i=0,s=0; 77 while(s<=100) 78 { 79 i++; 80 s=s+i; 81 } 82 printf("%d\t%d\n",i,s); 83 } 84 85 用while语句写100以内被7整除的数 86 #include <stdio.h> 87 void main() 88 { 89 int i=1; 90 while(i<=100) 91 { 92 if(i%7==0) 93 { 94 printf("%d\t",i); 95 } 96 i++; 97 } 98 } 99 100 用while语句算1加到100 101 #include <stdio.h> 102 void main() 103 { 104 int i=1,s=0; 105 while(i<=100) 106 { 107 s=s+i; 108 i++; 109 } 110 printf("%d\t",s); 111 } 112 113 100以内可以用根号开出的自然数对 114 #include <stdio.h> 115 #include <math.h> 116 void main() 117 { 118 int i,j; 119 for(i=1;i<=100;i++) 120 { 121 for(j=1;j<=i;j++) 122 { 123 if(sqrt(i+j)==(int)sqrt(i+j) && sqrt(i-j)==(int)sqrt(i-j)) 124 { 125 printf("%d-%d\t",i,j); 126 } 127 } 128 } 129 } 130 131 100以内可以用根号开出的数 132 #include <stdio.h> 133 #include <math.h> 134 void main() 135 { 136 int i; 137 for(i=1;i<=100;i++) 138 { 139 if(sqrt(i)==(int)sqrt(i)) 140 { 141 printf("%d\t",i); 142 } 143 } 144 } 145 146 小孩搬砖:共有37人搬砖,男人一次搬2块,女人一次搬一块,2个小孩搬一块,写程序 147 #include <stdio.h> 148 #include <math.h> 149 void main() 150 { 151 int x,y,z; 152 for(x=1;x<=37;x++) 153 { 154 for(y=1;y<=37;y++) 155 { 156 for(z=1;z<=37;z++) 157 { 158 if(x+y+z==37 && 2*x+y+z/2==37 && z%2==0) 159 printf("%d,%d,%d\n",x,y,z); 160 } 161 } 162 } 163 } 164 165 数组冒泡排序 166 #include <stdio.h> 167 void main() 168 { 169 int a[10],i,j,t; 170 printf("请任意输入10个整数:"); 171 for(i=0;i<10;i++) 172 { 173 scanf("%d",&a[i]); 174 } 175 for(i=0;i<=9;i++) 176 { 177 for(j=0;j<=9-i;j++) 178 { 179 if(a[j]>a[j+1]) 180 { 181 t=a[j]; 182 a[j]=a[j+1]; 183 a[j+1]=t; 184 } 185 } 186 } 187 for(i=1;i<=9;i++) 188 { 189 printf("%d ",a[i]); 190 } 191 } 192 193 用for语句显示100以内可以被7整除的数 194 #include <stdio.h> 195 void main() 196 { 197 int i; 198 for(i=1;i<=100;i++) 199 { 200 if(i%7==0) 201 { 202 printf("%d\t",i); 203 } 204 } 205 } 206 207 水仙花树 208 #include <stdio.h> 209 void main() 210 { 211 int i,j,k; 212 for(i=1;i<=9;i++) 213 { 214 for(j=0;j<=9;j++) 215 { 216 for(k=0;k<=9;k++) 217 { 218 if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) 219 { 220 printf("%d%d%d\t",i,j,k); 221 } 222 } 223 } 224 } 225 226 } 227 228 用程序写出2/(3*4)+4/(5*6)+……+20/(21*22) 229 #include <stdio.h> 230 void main() 231 { 232 int i; 233 float s=0; 234 for(i=2;i<=20;i=i+2) 235 { 236 s=s+(i*1.0)/((i+1)*(i+2)); 237 } 238 printf("s=%f",s); 239 } 240 241 若输入1,5,6,10,13,16,18,19,58,100这10个数字,请利用数组球其最大值 242 #include <stdio.h> 243 void main() 244 { 245 int a[10]={1,5,6,10,13,16,18,19,58,100}; 246 int i,max; 247 max=0; 248 for(i=0;i<=9;i++) 249 { 250 if(a[i]>max) 251 { 252 max=a[i]; 253 } 254 } 255 printf("%d\n",max); 256 } 257 258 任意输入10个数,求最大值和最小值 259 #include <stdio.h> 260 void main() 261 { 262 int a[10],i,j,max,min; 263 printf("请任意输入10个数:"); 264 for(i=0;i<10;i++) 265 { 266 scanf("%d",&a[i]); 267 } 268 max=0; 269 min=100; 270 for(i=0;i<=9;i++) 271 { 272 273 if(a[i]>max) 274 { 275 max=a[i]; 276 } 277 278 if(a[i]<min) 279 { 280 min=a[i]; 281 } 282 } 283 printf("min=%d\nmax=%d\n",min,max); 284 } 285 286 歌手大赛:求最高最低分 287 #include <stdio.h> 288 void main() 289 { 290 float a[10],max,min; 291 int i; 292 printf("请输入评委得分:"); 293 for(i=0;i<=9;i++) 294 { 295 scanf("%f",&a[i]); 296 } 297 max=0; 298 min=10; 299 for(i=0;i<=9;i++) 300 { 301 302 if(a[i]>max) 303 { 304 max=a[i]; 305 } 306 307 if(a[i]<min) 308 { 309 min=a[i]; 310 } 311 } 312 printf("min=%f\nmax=%f\n",min,max); 313 } 314 315 歌手大赛:求最终平均成绩 316 #include <stdio.h> 317 void main() 318 { 319 float a[9],max,min,s,p; 320 int i; 321 printf("请输入评委得分:"); 322 for(i=0;i<=9;i++) 323 { 324 scanf("%f",&a[i]); 325 } 326 max=0; 327 min=10; 328 s=0; 329 for(i=0;i<=9;i++) 330 { 331 332 if(a[i]>max) 333 { 334 max=a[i]; 335 } 336 337 if(a[i]<min) 338 { 339 min=a[i]; 340 } 341 s=s+a[i]; 342 } 343 p=(s-min-max)/8; 344 printf("%f\n",p); 345 } 346 347 任意输入两个数,求它们的最大公约数 348 #include <stdio.h> 349 void main() 350 { 351 int m,n,r,t; 352 printf("m,n="); 353 scanf("%d%d",&m,&n); 354 if(m<n) 355 { 356 t=m; 357 m=n; 358 n=t; 359 } 360 r=m%n; 361 while(r!=0) 362 { 363 m=n; 364 n=r; 365 r=m%n; 366 } 367 printf("最大公约数:%d",n); 368 } 369 370 九九乘法表 371 #include<stdio.h> 372 void main() 373 { 374 int i,j; 375 for(i=1;i<=9;i++) 376 { 377 for(j=1;j<=i;j++) 378 { 379 printf("%d*%d=%d\t",i,j,i*j); 380 } 381 { 382 printf("\n"); 383 } 384 } 385 } 386 387 有一条长阶梯,若每步跨2阶最后剩下1阶;若每步跨3阶最后剩下2阶;若每步跨5阶最后剩下4阶;若每步跨6阶最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。编程计算这条阶梯共有多少阶? 388 #include<stdio.h> 389 void main() 390 { 391 int i=7; 392 while(i<=1000) 393 { 394 if((i%2==1)&&(i%3==2)&&(i%5==4)&&(i%6==5)&&(i%7==0)) 395 { 396 printf("%d\n",i); 397 break; 398 } 399 i++; 400 } 401 } 402 403 右直角三角形 404 #include<stdio.h> 405 void main() 406 { 407 int i,j; 408 for(i=1;i<=5;i++) 409 { 410 for(j=4;j>=i;j--) 411 { 412 printf(" "); 413 } 414 for(j=1;j<=i;j++) 415 { 416 printf("*"); 417 } 418 { 419 printf("\n"); 420 } 421 } 422 } 423 424 正等腰三角形 425 #include<stdio.h> 426 void main() 427 { 428 int i,j; 429 for(i=1;i<=5;i++) 430 { 431 for(j=5;j>=i;j--) 432 { 433 printf(" "); 434 } 435 for(j=1;j<=i;j++) 436 { 437 printf(" *"); 438 } 439 { 440 printf("\n"); 441 } 442 } 443 } 444 445 倒等腰三角形 446 #include<stdio.h> 447 void main() 448 { 449 int i,j; 450 for(i=5;i>=1;i--) 451 { 452 for(j=5;j>=i;j--) 453 { 454 printf(" "); 455 } 456 for(j=1;j<=i;j++) 457 { 458 printf(" *"); 459 } 460 { 461 printf("\n"); 462 } 463 } 464 } 465 466 正直角三角形 467 #include<stdio.h> 468 void main() 469 { 470 int i,j; 471 for(i=1;i<=5;i++) 472 { 473 for(j=1;j<=i;j++) 474 { 475 printf("*"); 476 } 477 { 478 printf("\n"); 479 } 480 } 481 } 482 483 倒直角三角形 484 #include<stdio.h> 485 void main() 486 { 487 int i,j; 488 for(i=5;i>=1;i--) 489 { 490 for(j=1;j<=i;j++) 491 { 492 printf("*"); 493 } 494 { 495 printf("\n"); 496 } 497 } 498 } 499 500 左直角三角形 501 #include<stdio.h> 502 void main() 503 { 504 int i,j; 505 for(i=1;i<=5;i++) 506 { 507 for(j=5;j>=i;j--) 508 { 509 printf(" "); 510 } 511 for(j=1;j<=i;j++) 512 { 513 printf("*"); 514 } 515 { 516 printf("\n"); 517 } 518 } 519 } 520 521 左倒直角三角形 522 #include<stdio.h> 523 void main() 524 { 525 int i,j; 526 for(i=5;i>=1;i--) 527 { 528 for(j=5;j>=i;j--) 529 { 530 printf(" "); 531 } 532 for(j=1;j<=i;j++) 533 { 534 printf("*"); 535 } 536 { 537 printf("\n"); 538 } 539 } 540 } 541 542 #include<stdio.h> 543 void main() 544 { 545 int i,j,a=0; 546 for(i=1;i<=4;i++) 547 { 548 for(j=1;j<=i;j++) 549 { 550 a=a+2; 551 } 552 { 553 printf("a=%d\n",a); 554 } 555 } 556 } 557 558 For语句 559 #include <stdio.h> 560 void main() 561 { 562 int i,s=0; 563 for(i=1;i<=100;i++) 564 { 565 s=s+i; 566 } 567 { 568 printf("s=%d\n",s); 569 } 570 printf("i=%d\n",i); 571 } 572 573 输入1,2,3,4四个数,组成任意的三个数,不能重复,输出所有的三位数 574 #include <stdio.h> 575 void main() 576 { 577 int i,j,k,s=0; 578 for(i=1;i<=4;i++) 579 { 580 for(j=1;j<=4;j++) 581 { 582 for(k=1;k<=4;k++) 583 { 584 if(i!=j && j!=k && i!=k) 585 { 586 s++; 587 printf("%d\t",i*100+j*10+k); 588 } 589 } 590 } 591 } 592 printf("s=%d\n",s); 593 } 594 595 猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第十天想在吃的时候,只剩下一个桃子了,问第一天共摘了多少个桃子? 596 #include <stdio.h> 597 void main() 598 { 599 int i,j=1; 600 for(i=1;i<10;i++) 601 { 602 j=(j+1)*2; 603 } 604 printf("%d\n",j); 605 } 606 607 从1+2+3+......+n,求和 608 #include <stdio.h> 609 void main() 610 { 611 int i,n,s=0; 612 printf("n="); 613 scanf("%d",&n); 614 for(i=1;i<=n;i++) 615 { 616 s=s+i; 617 } 618 printf("s=%d\n",s); 619 } 620 621 从n+.....+m,求和 622 #include <stdio.h> 623 void main() 624 { 625 int s=0,n,m,i; 626 printf("n,m="); 627 scanf("%d%d",&n,&m); 628 for(i=n;i<=m;i++) 629 { 630 s=s+i; 631 } 632 printf("s=%d",s); 633 } 634 635 若n大于m,在运算n+(n+1)+(n+2)+......+m,求和 636 #include <stdio.h> 637 void main() 638 { 639 int s=0,n,m,i,t; 640 printf("n,m="); 641 scanf("%d%d",&n,&m); 642 if(n>m) 643 { 644 t=n; 645 n=m; 646 m=t; 647 } 648 for(i=n;i<=m;i++) 649 { 650 s=s+i; 651 } 652 printf("s=%d\n",s); 653 } 654 655 从n出发,每循环一次加1,循环5次,求和 656 #include <stdio.h> 657 void main() 658 { 659 int n,a=1; 660 for(n=1;n<=5;n++) 661 { 662 a=a+1; 663 } 664 printf("a=%d\n",a); 665 } 666 667 从n出发,每循环一次加3,n的范围为5,求最后一次循环的和 668 #include <stdio.h> 669 void main() 670 { 671 int a=5,n; 672 for(n=1;n<=5;n=n+3) 673 { 674 a=a+1; 675 } 676 printf("a=%d\n",a); 677 } 678 679 多重循环 680 #include <stdio.h> 681 void main() 682 { 683 int i,j,a=0; 684 for(i=1;i<=3;i++) 685 { 686 for(j=1;j<=i;j++) 687 { 688 a=a+1; 689 } 690 } 691 printf("a=%d\n",a); 692 } 693 694 if的嵌套语句 695 当输入3个正数时,由大到小 696 #include <stdio.h> 697 void main() 698 { 699 int a,b,c,t; 700 printf("a,b,c="); 701 scanf("%d%d%d",&a,&b,&c); 702 if(a>=0) 703 { 704 if(a<b) 705 { 706 t=a; 707 a=b; 708 b=t; 709 } 710 if(a<c) 711 { 712 t=a; 713 a=c; 714 c=t; 715 } 716 if(b<c) 717 { 718 t=b; 719 b=c; 720 c=t; 721 } 722 } 723 printf("a=%d\nb=%d\nc=%d\n",a,b,c); 724 } 725 726 当输入3个正数时,由小到大 727 #include <stdio.h> 728 void main() 729 { 730 int a,b,c,t; 731 printf("a,b,c="); 732 scanf("%d%d%d",&a,&b,&c); 733 if(a>=0) 734 { 735 if(a>b) 736 { 737 t=a; 738 a=b; 739 b=t; 740 } 741 if(a>c) 742 { 743 t=a; 744 a=c; 745 c=t; 746 } 747 if(b>c) 748 { 749 t=b; 750 b=c; 751 c=t; 752 } 753 } 754 printf("a=%d\nb=%d\nc=%d\n",a,b,c); 755 } 756 757 Y={sqrt(x) x>=10 758 X+7 0<=x<10 759 }fabs(x)-3 x<0 760 761 #include<stdio.h> 762 #include<math.h> 763 void main() 764 { 765 int x; 766 float y; 767 printf("x="); 768 scanf("%d",&x); 769 if(x>=10) 770 { 771 y=sqrt(x); 772 } 773 else 774 { 775 if(x>=0 && x<10) 776 { 777 y=x+7; 778 } 779 else 780 { 781 y=fabs(x)-3; 782 } 783 } 784 printf("y=%7.2f",y); 785 } 786 787 成绩在85分以上为A,在70分以上为B,在60分以上为C,小于60分的全为D 788 #include <stdio.h> 789 void main() 790 { 791 int x; 792 printf("x="); 793 scanf("%d",&x); 794 if(x>=0 && x<=100) 795 { 796 if(x>=85) 797 { 798 printf("A"); 799 } 800 else 801 if(x>=70) 802 { 803 printf("B"); 804 } 805 else 806 if(x>=60) 807 { 808 printf("C"); 809 } 810 else 811 printf("D"); 812 } 813 else 814 { 815 printf("错了!"); 816 } 817 } 818 819 多分支选择语句: 820 格式:switch(表达式) 821 case 常量: 822 表达式; 823 case 常量: 824 表达式; 825 ....... 826 switch后的表达式可以是整形或字符型 827 828 商场购物:消费金额为1000元以上打9折,消费金额为2000元以上打8折,消费金额为3000元以上打7折,消费金额为4000元以上都打5折 829 #include <stdio.h> 830 #include <math.h> 831 void main() 832 { 833 int t; 834 float x,y; 835 printf("x="); 836 scanf("%f",&x); 837 t=(int)x/1000; 838 switch(t) 839 { 840 case 0: y=x;break; 841 case 1: y=0.9*x;break; 842 case 2: y=0.8*x;break; 843 case 3: y=0.7*x;break; 844 case 4: y=0.5*x;break; 845 case 5: 846 case 6: 847 case 7: 848 case 8: 849 case 9: y=0.5*x;break; 850 } 851 printf("y=%7.2f",y); 852 } 853 854 输出1-100中所有的质数 855 #include <stdio.h> 856 #include <math.h> 857 void main() 858 { 859 int i,j; 860 for(i=1;i<=100;i++) 861 { 862 for(j=2;j<i;j++) 863 { 864 if(i%j==0) 865 break; 866 } 867 if(j>=i) 868 printf("%d\t",i); 869 } 870 } 871 872 成绩在90分以上为A,在80分以上为B,在70分以上为C,大于60分的为D,60分以下的都为E 873 #include <stdio.h> 874 #include <math.h> 875 void main() 876 { 877 int x,t; 878 printf("x="); 879 scanf("%d",&x); 880 if(x>=0 && x<=100) 881 { 882 t=(int)x/10; 883 switch(t) 884 { 885 case 9: printf("A");break; 886 case 8: printf("B");break; 887 case 7: printf("C");break; 888 case 6: printf("D");break; 889 case 5: 890 case 4: 891 case 3: 892 case 2: 893 case 1: 894 case 0: printf("E");break; 895 } 896 } 897 else 898 { 899 printf("对不起,错了!"); 900 } 901 } 902 903 三个值的交换 904 #include <stdio.h> 905 void main() 906 { 907 int a,b,c,t; 908 printf("a,b,c="); 909 scanf("%d%d%d",&a,&b,&c); 910 if(a<b) 911 { 912 t=a; 913 a=b; 914 b=t; 915 } 916 if(a<c) 917 { 918 t=a; 919 a=c; 920 c=t; 921 } 922 if(b<c) 923 { 924 t=b; 925 b=c; 926 c=t; 927 } 928 printf("a=%db=%dc=%d\n",a,b,c); 929 } 930 931 两个值的交换 932 #include <stdio.h> 933 void main() 934 { 935 int a,b,t; 936 printf("a,b="); 937 scanf("%d%d",&a,&b); 938 if(a>b) 939 printf("%d%d",a,b); 940 else 941 t=a; 942 a=b; 943 b=t; 944 printf("a=%db=%d\t",a,b); 945 } 946 947 输出两个值,哪个值最小输出哪个 948 #include <stdio.h> 949 void main() 950 { 951 float a,b; 952 printf("a,b="); 953 scanf("%f%f",&a,&b); 954 if(a<b) 955 printf("%f\n",a); 956 else 957 printf("%f\n",b); 958 } 959 960 输出2个值做比较 961 #include <stdio.h> 962 void main() 963 { 964 float a,b; 965 printf("a,b="); 966 scanf("%f%f",&a,&b); 967 if(a>=b) 968 printf("%f,%f\n",a,b); 969 else 970 printf("%f,%f\n",b,a); 971 } 972 973 一元二次方程 974 #include <stdio.h> 975 #include <math.h> 976 void main() 977 { 978 int a,b,c; 979 float x1,x2; 980 printf("a,b,c="); 981 scanf("%d%d%d",&a,&b,&c); 982 if(b*b-4*a*c>=0) 983 { 984 x1=(-b+sqrt(b*b-4*a*c))/(2*a); 985 x2=(-b-sqrt(b*b-4*a*c))/(2*a); 986 printf("x1=%7.2f\n",x1); 987 printf("x2=%7.2f\n",x2); 988 } 989 else 990 { 991 printf("无解"); 992 } 993 }