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作業