栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言-实验九 指针

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言-实验九 指针

注意:现在偷的懒以后都要补回来的! 希望大家认真学好C语言,不希望后悔!
  1. 计算无理数e
    【问题描述】
    输入整数n(0<=n<=20),计算公式 1 + 1/1! + 1/2! + … + 1/n!的值。
    【输入形式】
    输入整数n(0<=n<=30)。
    【输出形式】
    输出公式 1 + 1/1! + 1/2! + … + 1/n!结果,小数点后保留9位。
    【样例输入】
    12
    【样例输出】
    2.718281828
    【样例输入】
    4
    【样例输出】
    2.708333333
    【样例说明】
    输入n为12,求得公式1 + 1/1! + 1/2! +…+ 1/12!的值为2.718281828,小数点后保留9位。
    注意:为保证数据的准确性和一致性,请使用int或long类型保存阶乘的计算结果,用double数据类型计算和保存和的结果
#include

int  main()
{
    double m,sum=1,flag;
    scanf("%lf",&m);
    for(int i=1;i<=m;i++){
        long f=1;
        for(int j=1;j<=i;j++){
            f*=j;
        }
        flag=1/(double)f;
        sum+=flag;
    }
    printf("%.9lf",sum);
    return  0;
}

  1. 最大公约数
    【问题描述】求二个正整数a和b的最大公约数与最小公倍数。
    【输入形式】二个整数a和b,空格分开。
    【输出形式】二个整数,空格分开。第一个整数是a,b的最大公约数,第二个整数是a,b的最小公倍数。
    【样例输入】6 9
    【样例输出】3 18
    【样例说明】6和9的最大公约数是3,最小公倍数是18。
#include

int  main()
{
    int  a,b,flag,r;
    scanf("%d %d",&a,&b);
    flag=a*b;
    if(a
        r=a;
        a=b;
        b=r;
    }
    do{   	
        r=a%b;
		a=b;
		b=r;
	}while(r!=0);
    int g=flag/a;
    printf("%d %d",a,g);
    return  0;
}

  1. 完数分解
    【问题描述】输入一个正整数n(<=1000),判断该数是否为完数(真因子之和等于数本身),如6是完数,6=1+2+3。
    【输入形式】一个正整数n。
    【输出形式】如果是完数,输出完数与真因子之和,否则输出N。
    【样例1输入】6
    【样例1输出】6=1+2+3
    【样例2输入】8
    【样例2输出】N
#include
int  main()
{
    int  a,b[1000],i=0,sum=0;
    scanf("%d",&a);
    for(int j=1;j<=a/2;j++){
        if(a%j==0){
            b[i]=j;
            sum+=j;
            i++;
        }
    }
    if(sum==a){
        printf("%d=",a);
        for(int j=0;j
            if(j==0){
                printf("%d",b[j]);
            }else{
                printf("+%d",b[j]);
            }
        }
    }else
        printf("N");
    return  0;
}
程序片段题

1.【问题描述】使用数组存储若干本英文书名,调用排序函数将其排名后输出。
【输入形式】无
【样例输出】
C Programing
C#
FORTRAN
Visual Basic
Visual C++6.0

#include 
#include
#include
void sort(char *name[],int n)
{   
	char *temp;int i,j,k;
    for(i=0;i   k=i;
        for(j=i+1;j0)k=j;
        if(k!=i){   
        	temp=name[i];
            name[i]=name[k];
            name[k]=temp;
        }
    }
}
int main()
{   int i,m;
    char *book_name[]={"Visual Basic","Visual C++6.0","C Programing","FORTRAN","C#"};
    m=sizeof(book_name)/sizeof(char *);
    sort(book_name,m);
    for(i=0;i 

2.【问题描述】2是第1个素数,输入m,从小到大排列后输出第m个素数。
【输入形式】一个正整数m(m<=100)
【输出形式】一个正整数,表示第m个素数
【样例输入】8
【样例输出】19
【样例说明】从小到大2,3,5,7,11,13,17,19,第8个素数是19。

#include 
#include  "stdio.h"
int  p[100]={2};
int  isp(int  n)
{
	int i,flag=1;
	for(i=2;i
	    if(n%i==0)
	        flag=0;
	}
	return flag;
}
int  main(  )
{
    int  i,l=1,m;
    scanf("%d",&m);
    for(i=3;l 

3.【问题描述】删除指针数组中重复的字符串。S13.5
【样例输入】无
【样例输出】
Before deleting:
tianjin
taiyuan
beijing

beijing

shanghai
tianjin
After deleting:
tianjin
taiyuan
beijing
shanghai

#include 
#include 
int del_name(char *name[],int n)
{
    int i,j,k;
    for(i=0;i
        for(j=n-1;j>i;j--){
            if(strcmp(name[i],name[j])==0){
                for(k=j;k
                    name[k]=name[k+1];
                }
                n=n-1;
            }
        }
    }
    return n;
}
int main()
{
    int k,n;
    char *name[]={"tianjin","taiyuan","beijing","beijing","shanghai","tianjin"};
    n=sizeof(name)/sizeof(char*);
    printf("Before deleting:n");
    for (k=0;k 

4.【问题描述】函数merge()实现将字符串正序与反序连接。参考实验12.4。
【输入形式】一个字符串。
【输出形式】一个字符串。
【样例输入】1234a
【样例输出】1234aa4321

#include
#include
int  main()
{      
    char  str[100];   
    void merge(char *s);
    gets(str);     
    merge(str);
    puts(str);
    return  0;
}
void  merge(char  *s)
{      
    char  *p,*q,n;
    n=strlen(s);
    for(p=s+n-1,q=s+n;p>=s;p--,q++)
        *q=*p;
    *q='';
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/879856.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号