鱼C论坛

 找回密码
 立即注册
查看: 2738|回复: 9

[已解决]萌新的一些问题,求大神帮忙

[复制链接]
发表于 2021-5-27 10:31:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. typedef int DataType;
  2. void Reverse(DataType A[], int left, int right, int arraySize) {
  3. //假定在一位数组中放入两个顺序表(a1-am和b1-bn),要求变换成b1-bn,a1-am
  4.         if (left >= right || right >= arraySize)
  5.                 return;
  6.         int mid = (left + right) / 2;
  7.         for (int i = 0; i <= mid - left; i++) {
  8.                 DataType temp = A[left + i];
  9.                 A[left + i] = A[right - i];
  10.                 A[right - i] = temp;
  11.         }
  12. }

  13. void Exchange(DataType A[], int m, int n, int arraySize) {
  14.         Reverse(A, 0, m + n - 1,arraySize);
  15.         Reverse(A, 0, n - 1, arraySize);
  16.         Reverse(A, n, m + n - 1, arraySize);
  17. }
复制代码


如代码所示,首先想问一下typedef int DataType;语句是什么意思,其次是arraySize是数组大小吗?

  1. #include"tst1.cpp"
  2. int main()
  3. {
  4.         SqList *L;
  5.         ElemType e;
  6.         ElemType value;
  7.         DataType A[8] = {0};
  8.         printf("顺序表的基本运算如下:\n");
  9.         printf("初始化顺序表L\n");
  10.         InitList(L);
  11.         printf("依次插入1-8八个元素\n");
  12.         ListInsert(L, 1, '1');
  13.         ListInsert(L, 2, '2');
  14.         ListInsert(L, 3, '3');
  15.         ListInsert(L, 4, '4');
  16.         ListInsert(L, 5, '5');
  17.         ListInsert(L, 6, '6');
  18.         ListInsert(L, 7, '7');
  19.         ListInsert(L, 8, '8');
  20.         printf("输出顺序表L:"); DispList(L);
  21.         printf("顺序表L的长度:%d\n", ListLength(L));
  22.         printf("变换顺序表顺序\n");
  23.         Exchange(A, 5, 8, 9);
  24.         printf("输出顺序表L:"); DispList(L);
  25.         printf("释放顺序表L\n");
  26.         DestroyList(L);
  27.         return 1;
  28. }
复制代码


这个是我的调用过程,但是输出结果有问题 1.PNG
如图,按照逻辑应该输出67812345,但是结果不太对
求大佬指点


最佳答案
2021-5-27 15:30:42
Exchange(A, 5, 8, 9);请问你对A数组用函数Exchange 跟我L有什么关系  你显示的都是L
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-5-27 11:05:04 | 显示全部楼层
  1. #include<stdio.h>
  2. typedef int DataType;
  3. int main(){
  4.         DataType a=2;
  5.         printf("%d\n",a);
  6.         return 0;
  7.        
  8. }
复制代码


type 就相当于给类型取别名   
typedef int DataType;  -->  DateType == int    因此也可以用别名定义变量登;
arraysize 是数组的大小
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-27 11:59:19 | 显示全部楼层
万千只cnm 发表于 2021-5-27 11:05
type 就相当于给类型取别名   
typedef int DataType;  -->  DateType == int    因此也可以用别名定 ...

谢谢,那后面的问题是怎么回事呀,为什么输出结果不对
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-27 12:03:24 | 显示全部楼层
DOLLAR. 发表于 2021-5-27 11:59
谢谢,那后面的问题是怎么回事呀,为什么输出结果不对

https://zhidao.baidu.com/question/535058332.html
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-27 15:12:07 | 显示全部楼层
万千只cnm 发表于 2021-5-27 12:03
https://zhidao.baidu.com/question/535058332.html

不不,算法没问题,应该是调用的问题,我不太熟c
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-27 15:30:42 | 显示全部楼层    本楼为最佳答案   
Exchange(A, 5, 8, 9);请问你对A数组用函数Exchange 跟我L有什么关系  你显示的都是L
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-27 18:42:03 | 显示全部楼层
DestroyList(L)函数呢  还有其他函数定义呢
咋没看到
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-27 19:14:27 | 显示全部楼层
万千只cnm 发表于 2021-5-27 18:42
DestroyList(L)函数呢  还有其他函数定义呢
咋没看到

其他函数都没有问题,我已经测试过了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-27 19:14:58 | 显示全部楼层
lei1996 发表于 2021-5-27 15:30
Exchange(A, 5, 8, 9);请问你对A数组用函数Exchange 跟我L有什么关系  你显示的都是L

诶,你说的在理
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-28 05:31:06 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-28 12:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表