第一次作业。,
---恢复内容开始---
题目6-1拆分实数整数及小数部分
1设计思路
(1)
第一步:阅读题目要求及所给部分。
第二步:根据题意补全相应函数。
(2)流程图
2.实验代码
1 #include <stdio.h> 2 3 void splitfloat( float x, int *intpart, float *fracpart ); 4 5 int main() 6 { 7 float x, fracpart; 8 int intpart; 9 10 scanf("%f", &x); 11 splitfloat(x, &intpart, &fracpart); 12 printf("The integer part is %d\n", intpart); 13 printf("The fractional part is %g\n", fracpart); 14 15 return 0; 16 } 17 void splitfloat( float x, int *intpart, float *fracpart ) 18 { 19 *intpart=(int)x; 20 *fracpart=x-*intpart; 21 22 }
3.本体调试过程碰到问题及解决办法
未遇到问题
git地址:https://coding.net/u/Drunktea/p/6.1/git/blob/master/6.1?public=true
6-2在数组中查找指定元素
1.设计思路
(1)
第一步:阅读题目要求,变量名称和程序所给部分
第二步:将缺失函数补全
(2).流程图
2.实验代码
1 #include <stdio.h> 2 #define MAXN 10 3 4 int search( int list[], int n, int x ); 5 6 int main() 7 { 8 int i, index, n, x; 9 int a[MAXN]; 10 11 scanf("%d", &n); 12 for( i = 0; i < n; i++ ) 13 scanf("%d", &a[i]); 14 scanf("%d", &x); 15 index = search( a, n, x ); 16 if( index != -1 ) 17 printf("index = %d\n", index); 18 else 19 printf("Not found\n"); 20 21 return 0; 22 } 23 int search( int list[], int n, int x ) 24 { 25 int i; 26 for(i=0;i<n;i++) 27 if(list[i]==x) 28 return (i); 29 30 return -1; 31 32 }
3.本体调试过程碰到问题及解决办法
for循环与if使用混乱 将变量写成a
解决办法:重新整理思路 更改变量。
git网址:https://coding.net/u/Drunktea/p/6.2/git/blob/master/6.2?public=true
6-1计算两数的和与差
1设计思路
(1)
第一步:阅读题目要求及所给部分。
第二步:根据题意进行相应的加减,补全相应函数。
(2)流程图
2.实验代码
1 #include <stdio.h> 2 3 void sum_diff( float op1, float op2, float *psum, float *pdiff ); 4 5 int main() 6 { 7 float a, b, sum, diff; 8 9 scanf("%f %f", &a, &b); 10 sum_diff(a, b, &sum, &diff); 11 printf("The sum is %.2f\nThe diff is %.2f\n", sum, diff); 12 13 return 0; 14 } 15 void sum_diff( float op1, float op2, float *psum, float *pdiff ) 16 { 17 *psum=op1+op2; 18 *pdiff=op1-op2; 19 }
3.本体调试过程碰到问题及解决办法
无。
git网址:https://coding.net/u/Drunktea/p/6.3/git/blob/master/6.3?public=true
7-1 数组元素循环右移问题
1设计思路
(1)
第一步:阅读题目要求。
第二步:建立函数,利用主函数对其进行调用
(2)流程图
2.实验代码
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 void move(int a[], int size) 5 { 6 int i, t; 7 t = a[size-1]; 8 for(i = size - 2; i >= 0; i--) 9 { 10 a[i+1] = a[i]; 11 } 12 a[0] = t; 13 } 14 void out(int a[], int size) 15 { 16 int i; 17 for(i = 0; i < size; i++) 18 { 19 printf(i == size-1 ? "%d" : "%d ", a[i]); 20 } 21 } 22 int main(void) 23 { 24 int array[100]; 25 int i, N, M; 26 scanf("%d %d", &N, &M); 27 for(i = 0; i < N; i++) 28 scanf("%d", &array[i]); 29 for(i = 0; i < M; i++) 30 { 31 move(array, N); 32 } 33 ot(array, N); 34 35 return 0;}
3.本体调试过程碰到问题及解决办法
move函数中 移动关系整理不清。
解决方法:重新设计。
git网址:https://coding.net/u/Drunktea/p/7.1/git/blob/master/7.1?public=true