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); }