四、PTA实验作业(指针)

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

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

函数接口定义:

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

其中op1op2是输入的两个实数,*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


1.本题PTA提交列表

 

2.设计思路(包括流程图),主要描述题目算法

 

 

7-1 输出学生成绩(20 分)

本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。

输入格式:

输入第一行首先给出一个正整数N,表示学生的个数。接下来一行给出N个学生的成绩,数字间以空格分隔。

输出格式:

按照以下格式输出:

average = 平均成绩
max = 最高成绩
min = 最低成绩

结果均保留两位小数。

输入样例:

3
85 90 95

输出样例:

average = 90.00
max = 95.00
min = 85.00


1.本题PTA提交列表

2.设计思路(包括流程图),主要描述题目算法

 

6-2 移动字母(10 分)

本题要求编写函数,将输入字符串的前3个字符移到最后。

函数接口定义:

void Shift( char s[] );

其中char s[]是用户传入的字符串,题目保证其长度不小于3;函数Shift须将按照要求变换后的字符串仍然存在s[]里。

裁判测试程序样例:

#include <stdio.h>
#include <string.h>

#define MAXS 10

void Shift( char s[] );

void GetString( char s[] ); /* 实现细节在此不表 */

int main()
{
    char s[MAXS];

    GetString(s);
    Shift(s);
    printf("%s\n", s);
	
    return 0; 
}

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

输入样例:

abcdef

输出样例:

defabc

1、提交列表

 

2、设计思路(包括流程图)

 1、建立一个新的数组,将a[i]的值赋给新数组

2、利用新的数组将前三个字符移到最后

最终代码如下:

# include<stdio.h>
int main(void)
{
 int i,j,n;
 char a[100],b[100];
 printf("Input a strings:");
 i=0;
 while((a[i]=getchar())!='\n')
  i++;
 for(j=3;j<i;j++)
  b[j]=a[j-3];
 
 b[0]=a[i-3];
    b[1]=a[i-2];
 b[2]=a[i-1];
 
 for(n=0;n<i;n++){
  putchar(b[n]);
 }
 
 return 0;
}

 

3.本题调试过程碰到问题及PTA提交列表情况说明

 

 

 

 

posted @ 2018-01-20 12:45  良易  阅读(5409)  评论(0编辑  收藏  举报