//计算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("请使用空格或者回车来分隔
");
for(i=0;i<3;i++)
{
printf("请输入第%d个学生的四门课程的成绩:
",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(" 课程一 课程二 课程三 课程四 总分
");
for(i=0;i<4;i++)
{
if(i<3){
printf("学生%d ",i+1);
}else{
printf("单科平均分");
}
for(j=0;j<5;j++){
printf(" %d",m[i][j]);
}printf("
");
}
}
/*在具有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("
");
for(i=0;i<10;i++){//输出逆序后的数组
printf("%d,",b[i]);
}
}
/*从键盘输入三角形的三边长,判断这个三角形是否是直角三角形*/
#include<stdio.h>
main(){
int a,b,c;
printf("请输入三角形的三边长:
");
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("是直角三角形
");
}else{
printf("不是直角三角形
");
}
}
#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,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 != '