//计算1/1+1/ (1+2) +1/ (1+2+3) +…+1/(1+2+…n)的值,要求小数点后保留6位,n从键盘输入
#include<stdio.h>
main(){
double result=;
double num=;
int n;
int i;
printf("请输入正整数n:");
scanf("%d",&n);
for(i=;i<=n;i++){
num+=i;
result+=(/num);
}
printf("%10.6lf",result);
}
/*将三个学生、四门课程……,内容为三个学生的四门课成绩,求出每个学生四门课的平均分并输出,再求出每门课三个学生的平均分并输出!*/
#include <stdio.h>
/**
*created by simuhunluo
*/
int *input();
int *compute(int m[][]);
void output(int m[][]);
main()
{
int *a;
int i,j;
int m[][];
a=input();//输入值,此时只有3*4
for(i=;i<;i++)//读取指针中的数据并存进二维数组
{
for(j=;j<;j++){
m[i][j]=*a;
a++;
}
}
a=compute(m);//计算了总分以及单科平均此时有4*5
for(i=;i<;i++)//读取指针中的数据并存进二维数组
{
for(j=;j<;j++){
m[i][j]=*a;
a++;
}
}
output(m);//输出结果
}
int *input()//输入函数,返回数组首部地址
{
//{78 , 78 ,78,78,98,98,98,98,87 ,87, 87 ,87 }测试数据
int m[];
int i,j;
printf("请使用空格或者回车来分隔\n");
for(i=;i<;i++)
{
printf("请输入第%d个学生的四门课程的成绩:\n",i+);
for(j=;j<;j++){
scanf("%d",&m[*i+j]);
}
}
return m;
}
int *compute(int m[][]){
int *a;
int i,j;
int temp[];
for(i=;i<;i++)
{
m[i][]=;
if(i==)
{
for(j=;j<;j++)
{//单科均值
m[][j]=;
for(i=;i<;i++)
{
m[][j]+=m[i][j];
}
m[][j]/=;
}
break;
}
for(j=;j<;j++){
m[i][]+=m[i][j];
}
}
for(i=;i<;i++){
for(j=;j<;j++){
temp[*i+j]=m[i][j];
}
}
a=temp;
return a;
}
void output(int m[][]){
int i,j;
printf("\t\t课程一 课程二 课程三 课程四 总分\n");
for(i=;i<;i++)
{
if(i<){
printf("学生%d\t",i+);
}else{
printf("单科平均分");
}
for(j=;j<;j++){
printf("\t%d",m[i][j]);
}printf("\n");
}
}
/*在具有10个元素的一维整形数组中,将数组的元素逆序。要求:初始化一维数组,输出原始数组以及逆序后的数组*/
#include<stdio.h>
main(){
int a[]={ , ,,,,,,,,};
int b[];//逆序后的数组
int i;
for(i=;i<;i++){//输出原始数组
printf("%d,",a[i]);
}
for(i=;i<;i++){//逆序过程
b[i]=a[-i];
}
printf("\n");
for(i=;i<;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=,a=,b;
printf("请输入一个不小于6的偶数:");
while(demo<){
scanf_s("%d",&demo);
}
while(a<(demo/)){
b=demo-a;
if(isPrime(b)){
printf("%d = %d + %d", demo, a, b);
break;
}
a++;
}
}
//函数判断是否是素数,是则返回1,否返回0
int isPrime(int temp){
int i;
i=;
while(i<temp)
{
if(temp%i==)
break;
i++;
}
if(i==temp)
return ;
else
return ;
}
#include<stdio.h>
//2.输出100-999之间的孪生素数
int isPrime(int temp);
main(){
int n,m;
for(n=;n<=;n=n+){
m=n+;
if(isPrime(n)&&isPrime(m)){
printf("孪生素数:%d和%d\n",n,m);
}
}
}
int isPrime(int temp){
int i;
i=;
while(i<temp)
{
if(temp%i==)
break;
i++;
}
if(i==temp)
return ;
else
return ;
}
//编写函数clear (char *t)将字符串t中的全部英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。
#include<stdio.h>
#include "stdlib.h"
void clear(char *t){
int i=;
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);
}