c语言作业1028/1029
2017-10-30 16:55
127 查看
/* 1、 用标准C编程:找出整形数字1-100之间的素数,并打印出来。(素数:除了1和自己本身可以被整除。) */ #include <stdio.h> void main(void){ int i; int j; //定义一个1到100的数组 int arr[100]; for(i=0; i<100; i++){ arr[i]=i+1; } for(i=1; i<=100; i++){ for(j=1; j<i; j++){ //判断是否为合数 //如果是合数就让该数变为负的 //break出当前循环 if(arr[i]%j==0 && j!=1){ arr[i]=-arr[i]; break; } } } //遍历数组 for(i=0; i<100; i++){ //由于合数都为负 //过滤掉负数 输出的就是质数 if(arr[i]>1){ printf("%d ",arr[i]); } } }
/* 2、 用标准C编程:有两个整形变量m、n,求出这两个数的最小公倍数。 最小公倍数就是和m能够整除和n也能够整除的最小的数 */ #include <stdio.h> void main(void){ int m; int n; int i; scanf("%d%d",&m,&n); //从mn中最小的一个数开始遍历, 最小公倍数小于m*n // 如果它既能被m整除(和m取余为0)也能被n整除 的第一个数 就是最小公倍数 for(i=(m<n)? m:n; i<=m*n; i++){ //判断是否整除 如果能整除 直接break if(i%m==0 && i%n==0){ printf("%d\n",i); break; } } }
/* 3、 ?用标准C编程:输出杨辉三角形的前10行:三角形的每一行是(x+y)^n的展开式各项的系数。 例如: 第一行是(x+y)^0,其系数为1; 第二行是(x+y)^1,其系数为1; 第三行是(x+y)^2,其展开式为x2+2xy+y2,系数分别为1,2,1; 直观形式如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 */ /* 杨辉三角的每个项系数为 n! / ((n-m)! * m!) (n为列数从0开始 m为行数0=<m<=n ) */ #include <stdio.h> void main(void){ int x; int y; int i; for(x=0; x<=10; x++){ for(y=0; y<=x; y++){ printf("%d " ,coefficient(x)/(coefficient(x-y)*coefficient(y))); } printf("\n"); } } //定义一个 求x的阶乘的函数 int coefficient(int x); int coefficient(int x){ if(x==0){ return 1; } return x*coefficient(x-1); }