第一次作业
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