C题目

1、打印符号

#define S  "          "
#include <stdio.h>
int main(){
       int n,i,j;
       printf("请输入行数:");
       scanf("%d",&n);
       for(i = 1;i<=n;i++){
              printf(S);
              for(j=1;j<=2*(n-i);j++){
                putchar(' ');
              }
              for(j = 1;j <= 2*i-1;j++){
                     printf("*");
              }
              printf("\\n");
       }
       for(i  =  1;i<=n-1;i++){
              printf(S);
              for(j=1;j<=2*(n-i)-1;j++){
                     printf("*");
              }
              printf("\\n");
       }
       return 0;
}

2、水仙花数

#include <stdio.h>
#include<math.h>
int main(int argc, char *argv\[\])
{    
       int i,sum;
       for(i = 100;i < 1000;i++){
              sum = pow(i/100,3)+pow(i/10%10,3)+pow(i%10,3);
              if(sum == i){
                     printf("%d 是水仙花数!\\n",i);
              }
       }
       return 0;
}

3、泰勒级数计算sin(x)

#include <stdio.h>
#include <math.h>
int main(int argc, char *argv\[\])
{
       int i,x,j;
       float f,sum = 0,factorial;
       printf("请输入x:");
       scanf("%d",&x);
       i = 0;
       do{
              factorial = 1.0;
              for(j = 1;j <= 2*i+1;j++){
                     factorial *= j;
              }
              f = (pow(-1,i)\*pow(x,2\*i+1)/factorial)*1.0;
              sum += f;
              printf("%f\\n",f);
              i++;
       }while(fabs(f) > 1.0e-6);
             
       printf("sin(%d)的值为:%f,累加了:%d次",x,sum,i+1);
      
       return 0;
}

4、编写程序输出2~1000之间的亲密数对。说明:若a、b为一对亲密数对,则a的因子和等于b,b的因子数和为a。且a不等于b

#include <stdio.h>
int main(int argc, char *argv\[\])
{    
       int i,j,tempa,tempb;
       for(i = 2;i < 1000;i++){
              tempa = 0;
              for(j = 2;j < i;j++){
                     if(i%j == 0){
                            tempa += j;    
                     }
              }
              tempb = 0;
              for(j = 2 ;j < tempa;j++){
                     if(tempa%j == 0){
                            tempb += j;
                     }
              }
              if(i == tempb && i != tempa){
                     printf("%d 和 %d 是一对亲密数\\n",i,tempa);
              }
             
       }
       return 0;
}

5、打印杨辉三角:

#include <stdio.h>
#define N 14
int main()
{
    int i, j, k, n=0, a\[N\]\[N\];  /*定义二维数组a\[14\]\[14\]*/
    while(n<=0||n>=13){  /*控制打印的行数不要太大,过大会造成显示不规范*/
        printf("请输入要打印的行数:");
        scanf("%d",&n);
    }
    printf("%d行杨辉三角如下:\\n",n);
    for(i=1;i<=n;i++)
        a\[i\]\[1\] = a\[i\]\[i\] = 1;  /*两边的数令它为1,因为现在循环从1开始,就认为a\[i\]\[1\]为第一个数*/
    for(i=3;i<=n;i++)
        for(j=2;j<=i-1;j++)
            a\[i\]\[j\]=a\[i-1\]\[j-1\]+a\[i-1\]\[j\];  /*除两边的数外都等于上两顶数之和*/ 
    for(i=1;i<=n;i++){
        for(k=1;k<=n-i;k++)
            printf("   ");  /*这一行主要是在输出数之前打上空格占位,让输出的数更美观*/
        for(j=1;j<=i;j++)  /\*j<=i的原因是不输出其它的数,只输出我们想要的数\*/
            printf("%6d",a\[i\]\[j\]);
        
        printf("\\n");  /*当一行输出完以后换行继续下一行的输出*/
    }
    printf("\\n");
    return 0;
}