C语言代码

//计算1/1+1/ (1+2) +1/ (1+2+3) +…+1/(1+2+…n)的值,要求小数点后保留6位,n从键盘输入
#include<stdio.h>
main(){
    double result=0;
    double num=0;
    int n;
    int i;
    printf("请输入正整数n:");
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        num+=i;
        result+=(1/num);
    }
    printf("%10.6lf",result);
}

 

/*将三个学生、四门课程……,内容为三个学生的四门课成绩,求出每个学生四门课的平均分并输出,再求出每门课三个学生的平均分并输出!*/
#include <stdio.h> /** *created by simuhunluo */ int *input(); int *compute(int m[4][5]); void output(int m[4][5]); main() { int *a; int i,j; int m[4][5]; a=input();//输入值,此时只有3*4 for(i=0;i<3;i++)//读取指针中的数据并存进二维数组 { for(j=0;j<4;j++){ m[i][j]=*a; a++; } } a=compute(m);//计算了总分以及单科平均此时有4*5 for(i=0;i<4;i++)//读取指针中的数据并存进二维数组 { for(j=0;j<5;j++){ m[i][j]=*a; a++; } } output(m);//输出结果 } int *input()//输入函数,返回数组首部地址 { //{78 , 78 ,78,78,98,98,98,98,87 ,87, 87 ,87 }测试数据 int m[12]; int i,j; printf("请使用空格或者回车来分隔\n"); for(i=0;i<3;i++) { printf("请输入第%d个学生的四门课程的成绩:\n",i+1); for(j=0;j<4;j++){ scanf("%d",&m[4*i+j]); } } return m; } int *compute(int m[4][5]){ int *a; int i,j; int temp[20]; for(i=0;i<4;i++) { m[i][4]=0; if(i==3) { for(j=0;j<4;j++) {//单科均值 m[3][j]=0; for(i=0;i<3;i++) { m[3][j]+=m[i][j]; } m[3][j]/=3; } break; } for(j=0;j<5;j++){ m[i][4]+=m[i][j]; } } for(i=0;i<4;i++){ for(j=0;j<5;j++){ temp[5*i+j]=m[i][j]; } } a=temp; return a; } void output(int m[4][5]){ int i,j; printf("\t\t课程一 课程二 课程三 课程四 总分\n"); for(i=0;i<4;i++) { if(i<3){ printf("学生%d\t",i+1); }else{ printf("单科平均分"); } for(j=0;j<5;j++){ printf("\t%d",m[i][j]); }printf("\n"); } }

 

/*在具有10个元素的一维整形数组中,将数组的元素逆序。要求:初始化一维数组,输出原始数组以及逆序后的数组*/
#include<stdio.h>
main(){
    int a[10]={3 ,4 ,1,34,45,23,16,89,5,99};
    int b[10];//逆序后的数组
    int i;
    for(i=0;i<10;i++){//输出原始数组
        printf("%d,",a[i]);
    }
    for(i=0;i<10;i++){//逆序过程
        b[i]=a[9-i];
    }
    printf("\n");
    for(i=0;i<10;i++){//输出逆序后的数组
        printf("%d,",b[i]);
    }
}
 

 

/*从键盘输入三角形的三边长,判断这个三角形是否是直角三角形*/
#include<stdio.h>
main(){
    int a,b,c;
    printf("请输入三角形的三边长:\n");
    scanf("%d%d%d",&a,&b,&c);
    a=a*a;
    b=b*b;
    c=c*c;
    if(a+b==c||a+c==b||b+c==a){
        printf("是直角三角形\n");
    }else{
        printf("不是直角三角形\n");
    }
}

 

#include<stdio.h>
int isPrime(int temp);
main(){
    //1.验证哥德巴赫猜想:输入一个偶数,输出满足哥德巴赫猜想的解
    //            任一不小于6的偶数都可写成两个质数之和
    int demo=0,a=3,b;
    printf("请输入一个不小于6的偶数:");
    while(demo<6){
        scanf_s("%d",&demo);
    }
    while(a<(demo/2)){
        b=demo-a;
        if(isPrime(b)){
            printf("%d = %d + %d", demo, a, b);
            break;
        }
        a++;
    }
}
//函数判断是否是素数,是则返回1,否返回0
int isPrime(int temp){
    int i;
    i=2;
    while(i<temp)
    {
        if(temp%i==0)
            break;
        i++;
    }
    if(i==temp)
        return 1;
    else
        return 0;
}
#include<stdio.h>
//2.输出100-999之间的孪生素数
int isPrime(int temp);
main(){
    int n,m;
    for(n=101;n<=999;n=n+2){
        m=n+2;
        if(isPrime(n)&&isPrime(m)){
            printf("孪生素数:%d和%d\n",n,m);
        }
    }
}
int isPrime(int temp){
    int i;
    i=2;
    while(i<temp)
    {
        if(temp%i==0)
            break;
        i++;
    }
    if(i==temp)
        return 1;
    else
        return 0;
}

 

//编写函数clear (char *t)将字符串t中的全部英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。
#include<stdio.h>
#include "stdlib.h"
void clear(char *t){
    int i=0;
    char *temp;
    temp=(char *)malloc(sizeof(char));
    while(*t != '\0')
    {
        if(!(*t>='a' && *t<='z' ||*t>='A' && *t<='Z'))  // 如果不是字母字符,则存放于temp字符串中
            {
               *(temp+i) = *t;
               i++;
            }
        t++;
    }
    printf("%s",temp);
}
main(){
    char *str;
    str="s13fd897h";
    clear(str);
}

 

posted @ 2017-05-04 17:52  须小弥  阅读(669)  评论(0编辑  收藏  举报