目錄
6-1 計算兩數的和與差(5分)
函數接口定義:
裁判測試程序樣例:
輸入樣例:
輸出樣例:
代碼
6-2 拆分實數的整數與小數部分 (5分)
函數接口定義:
裁判測試程序樣例:
輸入樣例:
輸出樣例:
代碼
6-3 利用指針找最大值 (5分)
函數接口定義:
裁判測試程序樣例:
輸入樣例:
輸出樣例:
代碼
6-4 在數組中查找指定元素 (15分)
函數接口定義:
裁判測試程序樣例:
輸入樣例1:
輸出樣例1:
輸入樣例2:
輸出樣例2:
代碼
6-5 使用函數找出數組中的最大值 (16分)
函數接口定義:
裁判測試程序樣例:
輸入樣例:
輸出樣例:
代碼
6-1 計算兩數的和與差(5分)
本題要求實現一個計算輸入的兩數的和與差的簡單函數。
函數接口定義:
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; //通過傳入指針,即使函數返回類型是void,//也可以修改并傳回兩個值*pdiff = op1 - op2;
}
6-2 拆分實數的整數與小數部分 (5分)
本題要求實現一個拆分實數的整數與小數部分的簡單函數。
函數接口定義:
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 ){
//通過傳入指針,即使函數返回類型是void,也可以修改并傳回兩個值*intpart=(int)x; //整數部分,使用強制類型轉換*fracpart=x-*intpart; //小數部分,用x減去整數部分}
6-3 利用指針找最大值 (5分)
本題要求實現一個簡單函數,找出兩個數中的最大值。
函數接口定義:
void findmax( int *px, int *py, int *pmax );
其中px
和py
是用戶傳入的兩個整數的指針。函數findmax
應找出兩個指針所指向的整數中的最大值,存放在pmax
指向的位置。
裁判測試程序樣例:
#include <stdio.h>void findmax( int *px, int *py, int *pmax );int main()
{ int max, x, y; scanf("%d %d", &x, &y);findmax( &x, &y, &max );printf("%d\n", max);return 0;
} /* 你的代碼將被嵌在這里 */
輸入樣例:
3 5
輸出樣例:
5
代碼
void findmax( int *px, int *py, int *pmax )
{//通過傳入指針,即使函數返回類型是void,也可以修改并傳回兩個值if(*px>*py)*pmax=*px;else*pmax=*py;
}
6-4 在數組中查找指定元素 (15分)
本題要求實現一個在數組中查找指定元素的簡單函數。
函數接口定義:
int search( int list[], int n, int x );
其中list[]
是用戶傳入的數組;n
(≥0)是list[]
中元素的個數;x
是待查找的元素。如果找到
則函數search
返回相應元素的最小下標(下標從0開始),否則返回?1。
裁判測試程序樣例:
#include <stdio.h>
#define MAXN 10int 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);elseprintf("Not found\n");return 0;
}/* 你的代碼將被嵌在這里 */
輸入樣例1:
5
1 2 2 5 4
2
輸出樣例1:
index = 1
輸入樣例2:
5
1 2 2 5 4
0
輸出樣例2:
Not found
代碼
int search( int list[], int n, int x ){int i,t=-1;for(i=0;i<n;i++){if(list[i]==x){ t=i;break; //找到跳出for循環}}return t;}
6-5 使用函數找出數組中的最大值 (16分)
本題要求實現一個找出整型數組中最大值的函數。
函數接口定義:
int FindArrayMax( int a[], int n );
其中a
是用戶傳入的數組,n
是數組a
中元素的個數。函數返回數組a
中的最大值。
裁判測試程序樣例:
#include <stdio.h>
#define MAXN 10int FindArrayMax( int a[], int n );int main()
{int i, n;int a[MAXN];scanf("%d", &n);for( i=0; i<n; i++ ){scanf("%d", &a[i]);}printf("%d\n", FindArrayMax(a, n));return 0;
}/* 請在這里填寫答案 */
輸入樣例:
4
20 78 99 -14
輸出樣例:
99
代碼
int FindArrayMax(int a[],int n)
{int max=a[0]; //假設最大值是第一個for(int i=0;i<n;i++) //循環找到最大值{if(a[i]>=max) //如果大于最大值則替換{max=a[i];}}return max;
}