第一次作业

 

 

6.1拆分实数整数及小数部分

1.设计思路:

(1)见题明义:本题考核学生对指针和地址的函数运用,以及强转类型

(2)设计思路:将float 类型转成int类型,之后以指针形式赋予地址,完成本题

(3)流程图:无

2.实验代码:

#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;
}
void splitfloat( float x, int *intpart, float *fracpart )
{
  *intpart=(int)x;
  *fracpart=x-*intpart;
}

  

3.调试过程中碰到的问题和解决办法:

没有问题

git地址:https://git.coding.net/linghundouluo/Onehousework.git

6.2在数组中查找指定元素

1.设计思路:

(1)见题明义:本题考核学生对函数与数组的综合使用能力

(2)设计思路:使用循环for将导入函数的数组的值一一与查找值比对,如有就返回下标值,若没有就返回-1

(3)流程图:无

2.实验代码:

#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;
}
int search( int list[], int n, int x )
{
    int i=0;
  for(i=0;i<n;i++)
  {
    if(x==list[i])
    {
          return(i);
    }
  }
  return (-1);
}

3.调试过程中碰到的问题和解决办法:

没有问题

git地址:https://git.coding.net/linghundouluo/Onehousework.git

6-1计算两数的和与差

1设计思路

(1)见题明义:本题考核学生对函数的调用,和指针与函数的符合的使用

(2)设计思路:调用函数值,在函数中进行加减算法,用指针调用地址赋值

(3)流程图:无

2.实验代码:

#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; 
}

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

3.调试过程中遇到的问题和解决办法:

没有问题

git地址:https://git.coding.net/linghundouluo/Onehousework.git

7.1数组元素循环右移问题

1.设计思路:

(1)见题明义:本题考核学生对数组以及函数调用

(2)设计思路:运用循环的方式将数组中的值循环导入和循环变化,以达到本题目的

(2)流程图:无

2.实验代码:C语言设计:

#include <stdio.h>
#include <stdlib.h>

void move(int a[], int size)
{
    int i, t;

    t = a[size-1];

    for(i = size - 2; i >= 0; i--)
    {
        a[i+1] = a[i]; 
    }
    a[0] = t;
}

void ot(int a[], int size)
{
    int i;

    for(i = 0; i < size; i++)
    {
        printf(i == size-1 ? "%d" : "%d ", a[i]);
    }
}

int main(void)
{
    int array[100];
    int i, N, M;

    scanf("%d %d", &N, &M);
    for(i = 0; i < N; i++)
        scanf("%d", &array[i]);

    for(i = 0; i < M; i++)
    {
        move(array, N);
    }

    ot(array, N);

3.调试过程中遇到的问题和解决办法:

没有问题。

C++语言设计:

#include<iostream>
using namespace std;
int main()
{
     int a[100];
     int N,M,b,c;
     cin>>N>>M;
     for(int i=0;i<N;i++)
    {
        cin>>a[i];
    }
    for(int i=0;i<M;i++)
    {
         b=a[N-1];

            for(int k=N-2;k>= 0;k--)
            {
                    a[k+1]=a[k]; 
            }
         a[0]=b;
    }
    for(int i=0;i<N;i++)
    {
        cout<<a[i];
    }
    return 0;
}

 

3.调试过程中遇到的问题和解决办法:

此代码正常编译,结果正确,适用于此题,但PTA上显示格式错误。

 git地址:https://git.coding.net/linghundouluo/Onehousework.git

git:https://git.coding.net/linghundouluo/Onehousework.git

posted on 2018-04-07 18:48  辰*  阅读(99)  评论(2编辑  收藏  举报