第一次作业

第一题:计算两个数的和与差
1.①设计思路
第一步:阅读题目 理解主函数与函数声明
第二步: 分析 在主函数main中,先定义两个浮点数a和b,在定义求两个浮点数diff和sum代表差与和
第三步: 解答 使用调用函数sum_diff,psum接收&sum,pdiff接收&diff,分别赋值a和b,op1接收实数a,op2接收实数b,计算两数的和与差:psum=op1+op2;,pdiff=op1-op2
第四步:计算输出 计算op1+op2和op1-op2,输出结果
②流程图

2.实验代码

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

3.本题调试过程碰到问题及解决的办法:
错误原因:指针使用不明确
改正方法:多次使用代码,使指针使用更明确

第二题:拆分实数的整数与小数部分
1.①设计思路
第一步:阅读题目 理解主函数与函数声明
第二步: 分析 在主函数main中,定义一个浮点数x,将x的整数部分和小数部分分离
第三步: 解答 使用调用函数splitfloat,利用实数x接收主函数中的x,利用intpart接收main中的&intpart,利用fracpart接收主函数中的&fracpartsum_diff
第四步:计算输出 分解x,整数部分:intpart=(int)x,小数部分:fracpart=x-*intpart,计算,输出结果
②流程图

2.实验代码

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

3.本题调试过程碰到问题及解决的办法:
错误原因:调用使用不明确
改正方法:多次使用代码,使调用函数使用更明确

第三题:在数组中查找指定函数
1.①设计思路
第一步:阅读题目 理解主函数与函数声明
第二步: 分析 定义一个数组list[],输入俩个整数x和n,输入整数i作为数组的相应函数的下角标
第三步: 解答 使用指针*p查找整数x,未找到则输出-1
第四步:计算输出 输出下角标或者-1
②流程图

2.实验代码

int search( int list[], int n, int x )
        {
    	        int *p=list , i ,idx;
	        for(i=0;i<n;i++,p++){
		        if(*p==x){
		    	    idx=i;break;
		        }
		       if(i==(n-1)&&*p!=x){
			        idx=-1;break;
		        }
	        }
	        return idx;
        }

3.本题调试过程碰到问题及解决的办法:
错误原因:for函数使用不明确
改正方法:多次使用代码,使for函数使用更明确

第四题:找最大值及其下标
1.①设计思路
第一步:阅读题目 理解主函数与函数声明
第二步: 分析 输入整数i和n,使用for函数与指针a和b
第三步: 解答 使用if语句
第四步:计算输出 回归max
②流程图

2.实验代码

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

3.本题调试过程碰到问题及解决的办法:
错误原因:调用函数与for函数和if函数同时使用不明确
改正方法:多次使用代码,使调用函数和for函数和if函数使用更明确

第五题:最小数放前最大数放后
1.①设计思路
第一步:阅读题目 理解主函数与函数声明
第二步: 分析 先定义三个调用函数input()和output()和max_min(),输入i,temp,q,w
第三步: 解答 用for函数和if函数
第四步:计算输出 计算temp=(arr+0),(arr+0)=(arr+q),(arr+q)=temp,temp=(arr+n-1),(arr+n-1)=(arr+w),(arr+w)=temp,输出
②流程图

2.实验代码

void input(int *arr,int n){
		    int i;
		    for(i=0;i<n;i++){
			    scanf("%d",arr+i);
		    }
	    } 
	    void max_min(int *arr,int n){
		    int min=arr[0],max=arr[0];
		    int i,temp;
		    int q=0,w=0;
		    for(i=0;i<n;i++){
			    if(min>*(arr+i)){
				    min=*(arr+i);
				    q=i;
			    } 
			    if(max<*(arr+i)){
				    max=*(arr+i);
				    w=i;
			    }
		    }
		    temp=*(arr+0);*(arr+0)=*(arr+q);*(arr+q)=temp;
		    temp=*(arr+n-1);*(arr+n-1)=*(arr+w);*(arr+w)=temp;
	    }
	    void output(int *arr,int n){
		    int i;
		    for(i=0;i<n;i++){
			    printf("%3d",*(arr+i));
		    }
	    }

3.本题调试过程碰到问题及解决的办法:
错误原因:三次函数的调用不熟悉
改正方法:多次联系导致调用更明确

第六题:指针选择法排序
1.①设计思路
第一步:阅读题目 理解主函数与函数声明
第二步: 分析 调用函数sort(),输入i,j,s,temp
第三步: 解答 使用双重for函数,if函数,指针
第四步:计算输出 计算s=j,temp=(x+i);(x+i)=(x+s);(x+s)=temp;
②流程图

2.实验代码

void sort(int *x,int n){
 		    int i,j,s,temp;
 		    for(i=0;i<n-1;i++){
 			    s=i;
 			    for(j=i+1;j<n;j++){
 				    if(*(x+s)<*(x+j)){
 					    s=j;
				     }
			     }
			     if(s!=i){
			     	    temp=*(x+i);*(x+i)=*(x+s);*(x+s)=temp;
			     }
		     }
      }

3.本题调试过程碰到问题及解决的办法:
错误原因:双重for函数使用不协调
改正方法:多次联系是for函数更加熟练

第七题:判断回文字符串
1.①设计思路
第一步:阅读题目 理解主函数与函数声明
第二步: 分析 调用函数bool palindrome()
第三步: 解答 for函数与if函数连用,套着指针
第四步:计算输出 回归
②流程图

2.实验代码

bool palindrome( char *s ){
            int i,count=0,q;
            count=strlen(s);
            q=count/2;
            for(i=0;i<q;i++){
                if((*(s+i))!=(*(s+count-i-1))){
                    return(false);
                }
            }
            if(i==q){
                return(true);
            }
        }

3.本题调试过程碰到问题及解决的办法:
错误原因:调用字符,指针在字符处出错
改正方法:重新输入了几次,得以改正

第八题:
1.①设计思路
第一步:阅读题目 理解主函数与函数声明
第二步: 分析 调用strmcpy(),使用字符t,s
第三步: 解答 用for函数计算t到s之间的字符串
第四步:计算输出 输出字符串
②流程图

2.实验代码

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

3.本题调试过程碰到问题及解决的办法:
错误原因:由于程序错误,字符串缺少元素
改正方法:多次改正for函数的输入,避免字符串的缺失

学习总结和进度:
许多代码不明确,甚至不会使用,本次作业让我最大程度的去敲代码,熟练的使用各种工具,理解各个代码之间使用联系,多次使用,使自己更加熟练程序中函数的使用。

http://www.cnblogs.com/dangrui/
http://www.cnblogs.com/zhang03/
http://www.cnblogs.com/dxfish/
http://www.cnblogs.com/chenxidream/

posted on 2018-03-25 22:03  苏冽  阅读(237)  评论(10编辑  收藏  举报

导航