• 2018上C语言程序设计(高级)作业- 第1次作业


    第一次作业

    题目1-1 计算两数的和与差

    1.设计思路

    第一步:psum是op1与op2的和
    第二步:pdiff是op1与op2的差

    2.实验代码

    void sum_diff( float op1, float op2, float *psum, float *pdiff)
    {
      *psum = op1 + op2;
      *pdiff = op1 - op2;
    }
    

    3.本题调试过程碰到问题及解决办法

    1-2 拆分实数的整数与小数部分

    1.设计思路

    第一步:取x整数部分
    第二步:用x减去x整数部分

    2.实验代码

    void splitfloat( float x, int *intpart, float *fracpart )
    {
      *intpart = (int)x;
      *fracpart = x - (int)x;
    }
    

    3.本题调试过程碰到问题及解决办法

    2-1 在数组中查找指定元素

    1.设计思路

    第一步:定义下标i,返回值b
    第二步:建立for循环,在数组中查找与输入的x相同的数字,如果有,下标i赋予返回值b,如果没有,-1赋予返回值b
    第三步:返回b

    2.实验代码

    int search( int list[], int n, int x )
    {
      int i, b;
      for(i = 0;i < n; i++)
      {
        if(list[i] == x)
        {
          b = i;
          break;
        }else
        {
          b = -1;
        }
      }return (b);
    }
    

    3.本题调试过程碰到问题及解决办法

    2-2 找最大值及其下标

    1.设计思路

    第一步:定义max值为零,定义i
    第二步:建立for循环,循环中建立if语句,把a【i】数组中大于max的数都赋予max,下标赋予*b
    第三步:返回max

    2.实验代码

    int fun(int *a,int *b,int n)
    {
     int max=0;
      int i;
         for(i=0,max=0,*b=0;i<n;i++)
         {
             if( a[i] > max ) {
    		 max=a[i];
    		 *b=i;
    		 }
         }
      return max;
    }
    

    3.本题调试过程碰到问题及解决办法

    3-1 最小数放前最大数放后

    1.设计思路

    第一步:输入数组
    第二步:定义for循环找出最大值与最小值与以一个数和最后一个数调换
    第三步:输出数组值

    2.实验代码

    #include<stdio.h>
    void input(int *arr,int n)
    {
    	int i=0;
    	for(i=0;i<n;i++)
    	{
    		scanf("%d",&arr[i]);
    	}
     } 
    void max_min(int *arr,int n)
     {
     	int j=0,x=0,y=n-1;
     	for(j=0;j<n;j++)
     	{
     		if(arr[x]>arr[j])
     		{
     			int swap;
     			swap=arr[x];arr[x]=arr[j];arr[j]=swap;
    		 }
    	 }
    	 for(j=n-1;j>0;j--)
    	 {
    	 	if(arr[y]<arr[j])
    	 	{
    	 		int temp;
    	 		temp=arr[y];arr[y]=arr[j];arr[j]=temp;
    		 }
    	 }
     }
     void output(int *arr,int n)
     {
     	int k=0;
     	for(k=0;k<n;k++)
     	{
     		printf("%3d",arr[k]);
    	 }
     }
    

    3.本题调试过程碰到问题及解决办法

    3-2 指针选择法排序

    1.设计思路

    第一步:创建循环变量
    第二步:定义j=0,k=0
    第三步:将首元素与其他元素进行比较,根据大在前小在后进行交换,以此类推

    2.实验代码

    #include<stdio.h>
    void sort(int *x,int n)
    {
    	int j=0,k=0;
    	for(j=1;j<n;j++)
    	{
    		for(k=0;k<n-j;k++)
    		{
    			if(x[k]<x[k+1])
    			{
    				int swap;
    				swap=x[k];x[k]=x[k+1];x[k+1]=swap;
    			}
    		}
    	}
    }
    

    3.本题调试过程碰到问题及解决办法

    4-1 判断回文字符串

    1.设计思路

    第一步:定义i,n
    第二步:建立for循环进行比较

    2.实验代码

    bool palindrome( char *s )
    {
      int i,n;
      for(i = 0,n = 0;s[i] != '';i ++)
      {  
        n ++;
      }
      for(i = 0;i <= (n/2);i ++)
      {
        if(s[i] != s[n-i-1])
        return 0;
      }
      return true;
    }
    

    3.本题调试过程碰到问题及解决办法

    4-1 判断回文字符串

    1.设计思路

    第一步:定义i
    第二步:建立for循环使t字符串中从m开始的字符赋予到s字符串中

    2.实验代码

    void strmcpy( char *t, int m, char *s ){
    		int i;
    		for(i=m;*(t+i-1)!='';i++){
    		  *(s+i-m)=*(t+i-1);
    		}
    		*(s+i-m)='';
    	}
    

    3.本题调试过程碰到问题及解决办法

    学习总结和进度:

    这两周学习了一些关于指针的知识,学习了如何使用指针,指针与数组的结合还有指针字符串的使用,我学的还不是太好,做一道题要很长时间,会多加练习。

    git地址:https://git.coding.net/hgr123/text.git

    点评作业:

    http://www.cnblogs.com/dx2017/p/8560765.html
    http://www.cnblogs.com/shilcz/p/8611461.html
    http://www.cnblogs.com/gao628526/p/8551285.html

  • 相关阅读:
    linux常用命令总结-updating
    三次握手、四次挥手的理解
    【WPF学习】第二十八章 程序集资源
    【WPF学习】第二十七章 Application类的任务
    【WPF学习】第二十六章 Application类——应用程序的生命周期
    【WPF学习】第二十五章 日期控件
    【WPF学习】第二十四章 基于范围的控件
    【WPF学习】第二十三章 列表控件
    【WPF学习】第二十二章 文本控件
    【WPF学习】第二十一章 特殊容器
  • 原文地址:https://www.cnblogs.com/hgr123/p/8645427.html
Copyright © 2020-2023  润新知