第一次作业
第一题:
代码:
void sum_diff( float op1, float op2, float *psum, float *pdiff )
{
*psum=op1+op2;
*pdiff=op1-op2;
}
流程图:
思路:
第一步:设置被调函数 op1, op2, psum, pdiff ,用被调函数计算psum的值和pdiff的值;
第二步:代入到主函数计算a、b的和与差;
第三布:输出;
调试:
第一题手滑打错了
第二题:
代码:
void splitfloat( float x, int *intpart, float *fracpart )
{
*intpart=(int)x;
*fracpart=x-(int)x;
}
流程图:
思路:
第一步:定义想要的整数
第二步:小数用原数减去定义的整数部分,整数就是定义的整数;
调试:
不清楚怎么定义int(x)
第三题
代码:
int search( int list[], int n, int x )
{
int i,result;
for( i = 0; i < n; i++ )
{
if(list[i]==x)
{
result=i;
break;
}
else{
result=-1;
}
}
return(result);
}
流程图:
思路:
第一步:定义整数x,n,数组list[]
第二步:找到目标数,输出result
调试:
没有什么问题
第四题:
代码:
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;
}
流程图:
调试:
不太会
第五题
代码:
#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]);
}
}
流程图:
第六题
代码:
#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;
}
}
}
}
第七题
代码:
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);
}
}
第八题:
代码:
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)=' ';
}
后面几道题都不太会 流程图也不太明白
点评
学习内容总结
学习了哪些内容:
这两周学习了指针的概念,还有指针的初步用法,感觉学习了很多