• 作业8总结


    一、实验过程中遇到的问题及解决方法:
    1)在做第4题时两个数交换值老是乱,多次练习之后结合书本上的内容才掌握。
    2)看到第5题时候,第一个想法就是定义两个数组赋值之后一样的不输出,在做的过程中还发现了n,m不相等比较如果m比n大m多的几位不显示。例如m=5,n=3 m的5个数为1 3 5 7 9,n的3个数为1 3 5,发现7,9并不显示就用了

    for(i=n;i<m;i++) printf("%d ",b[i]); 

    显示多的几位,并设定了3种情况(m>n,m<n,m=n)。然后发现了改变顺序输出不正确的问题,引用了第四题的排序,先对两组数列进行排序,在进行比较,发现无法正确输出。

    #include<stdio.h>
    int main()
    {
        int i,n,a[10],minj,min,k,b[10],m;
        printf("Enter n:");
        scanf("%d",&n);
        printf("Enter %d number:",n);
        for(i=0;i<n;i++) scanf("%d",&a[i]);
        for(k=0;k<n-1;k++){
            minj=k;
            for(i=k+1;i<n;i++)
                if(a[i]<a[minj]) minj=i;
            min=a[minj];
            a[minj]=a[k];
            a[k]=min;
        }
        printf("Enter m:");
        scanf("%d",&m);
        printf("Enter %d number:",m);
        for(i=0;i<m;i++) scanf("%d",&b[i]);
        for(k=0;k<n-1;k++){
            minj=k;
            for(i=k+1;i<m;i++)
                if(b[i]<b[minj]) minj=i;
            min=b[minj];
            b[minj]=b[k];
            b[k]=min;
        }
        if(n<m){
            for(i=0;i<n;i++){        
                if(a[i]==b[i]) continue;
                printf("%d %d ",a[i],b[i]);
            }
            for(i=n;i<m;i++) printf("%d ",b[i]); 
        } 
        if(n>m){
            for(i=0;i<m;i++){
                if(a[i]==b[i]) continue;
                printf("%d %d ",b[i],a[i]);
            }
            for(i=m;i<n;i++) printf("%d ",a[i]);
        }
        return 0;
    }

    感觉应该再设置数组c将不同的值存入数组c,还没进行实践。

    二、实验心得体会:
    这次实验发现了,随着学习内容的增加,在实验过程中可能会遇到很多问题,应尽早进行实验,以便能在发现问题之后有充分的时间自己尝试出正确的答案。

    附加题:
    1)

    #include<stdio.h>
    int main()
    {
        int a,b,c,d;
        double sum,p;
        printf("Input 4 number:");
        scanf("%d%d%d%d",&a,&b,&c,&d);
        sum=a+b+c+d;
        p=sum/4;
        printf("和=%.lf 平均值=%.1f",sum,p);
        return 0;
    }

    2)

    #include<stdio.h>
    int main()
    {
        int x;
        double d;
        printf("Input x:");
        scanf("%d",&x);
        if(x<=50) d=x*0.53;
        else d=(x-50)*0.58+50*0.53;
        printf("电费为:%.1lf",d);
        return 0;
    }  

    3)

    #include<stdio.h>
    int main()
    {
        int m,n;
        double i,sum=0,num;
        printf("Input m,n:");
        scanf("%d%d",&m,&n);
        for(i=m;i<=n;i++){
            num=i*i+1/i;
            sum=sum+num;
        }
        printf("和为:%.6lf",sum);
        return 0;
    }

    4)

    #include<stdio.h>
    int main()
    {
        int n,fh=1,i;
        double fm=1,fz=1,sum=0,num;
        printf("Input n:");
        scanf("%d",&n);
        for(i=1;i<=n;i++){        
            num=fh*(fz/fm);
            fh=-fh;
            fm=fm+2;
            fz=fz+1;
            sum=sum+num;        
        }
        printf("和为:%.2lf",sum);
        return 0;    
    }

    5)

    #include<stdio.h>
    #include<math.h>
    int main()
    {
        int i,n;
        double sum=0,num;
        printf("Input n:");
        scanf("%d",&n);
        for(i=1;i<=n;i++){
            num=sqrt(i);
            sum=sum+num; 
        }
        printf("和为:%.2lf",sum);
        return 0;
    }

    6)

    #include<stdio.h>
    int fact(int i);
    int main()
    {
        int n,i;
        double e,num;
        printf("Input n:");
        scanf("%d",&n);
        for(i=1;i<=n;i++){
            num=fact(i);
            e=e+num;
        }
        printf("和为:%.0lf",e);
        return 0;
    }
    
    int fact(int i)
    {
        int sum=1,n,j;
        for(j=1;j<=i;j++)
        sum=sum*j;
        return sum;
    }
  • 相关阅读:
    web基础要点记录
    前端一些干货
    正则表达式手册
    JQuery实现旋转轮播图
    JQuery模拟常见的拖拽验证
    electron应用以管理员权限启动
    原生JS模拟百度搜索关键字与跳转
    关于Application的使用
    Android事件分发机制(相关文章)
    (转)Activity的四种launchMode
  • 原文地址:https://www.cnblogs.com/lang-langang/p/6068129.html
Copyright © 2020-2023  润新知