第二周c语言PTA作业留

6-1 计算两数的和与差(10 分)

本题要求实现一个计算输入的两数的和与差的简单函数。
函数接口定义:

void sum_diff( float op1, float op2, float *psum, float *pdiff );

其中op1和op2是输入的两个实数,psum和pdiff是计算得出的和与差。
裁判测试程序样例:

include <stdio.h>

void sum_diff( float op1, float op2, float *psum, float *pdiff );

int main()
{
float a, b, sum, diff;

scanf("%f %f", &a, &b);
sum_diff(a, b, &sum, &diff);
printf("The sum is %.2f\nThe diff is %.2f\n", sum, diff);

return 0; 

}

/* 你的代码将被嵌在这里 */

输入样例:

4 6

输出样例:

The sum is 10.00
The diff is -2.00

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



6-2 拆分实数的整数与小数部分(15 分)

本题要求实现一个拆分实数的整数与小数部分的简单函数。
函数接口定义:

void splitfloat( float x, int *intpart, float *fracpart );

其中x是被拆分的实数(0≤x<10000),intpart和fracpart分别是将实数x拆分出来的整数部分与小数部分。
裁判测试程序样例:

include <stdio.h>

void splitfloat( float x, int *intpart, float *fracpart );

int main()
{
float x, fracpart;
int intpart;

scanf("%f", &x);
splitfloat(x, &intpart, &fracpart);
printf("The integer part is %d\n", intpart);
printf("The fractional part is %g\n", fracpart);

return 0;

}

/* 你的代码将被嵌在这里 */

输入样例:

2.718

输出样例:

The integer part is 2
The fractional part is 0.718

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



6-1 在数组中查找指定元素(15 分)

本题要求实现一个在数组中查找指定元素的简单函数。
函数接口定义:

int search( int list[], int n, int x );

其中list[]是用户传入的数组;n(≥0)是list[]中元素的个数;x是待查找的元素。如果找到

则函数search返回相应元素的最小下标(下标从0开始),否则返回−1。
裁判测试程序样例:

include <stdio.h>

define MAXN 10

int search( int list[], int n, int x );

int main()
{
int i, index, n, x;
int a[MAXN];

scanf("%d", &n);
for( i = 0; i < n; i++ )
    scanf("%d", &a[i]);
scanf("%d", &x);
index = search( a, n, x );
if( index != -1 )
    printf("index = %d\n", index);
else
    printf("Not found\n");

return 0;

}

/* 你的代码将被嵌在这里 */

输入样例:

5
1 2 2 5 4
2

输出样例:

index = 1

int search(int list[], int n, int x)
{
int i;
for (i = 0; i < n; i++)
{

        if (list[i] == x)  
        {  
            return i ;  
            break;  
        }  
    }  
    return -1;  

}



6-2 找最大值及其下标(10 分)

在一维整型数组中找出其中最大的数及其下标。
函数接口定义:

int fun(int *a,int *b,int n);

其中形参a 、b、n都是用户传入的参数。函数fun的功能是在指针a所指向的一维数组中找出其中最大的数及其下标,下标存到指针b所指的变量里,函数返回最大值。
裁判测试程序样例:

include<stdio.h>

define N 10

int fun(int *a,int *b,int n);
int main()
{ int a[N],i,max,p=0;
for(i=0;i<N;i++) scanf("%d",&a[i]);
max=fun(a,&p,N);
printf("max=%d,position=%d\n",max,p);
return 0;
}

/* 请在这里填写答案 */

输入样例:

2 1 5 4 8 4 5 8 9 1

输出样例:

max=9,position=8

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

第二周c语言PTA作业

posted @ 2018-03-18 10:39  shilcz  阅读(2437)  评论(0编辑  收藏  举报