|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
刚刚跟着哔哩哔哩上看小甲鱼的视频,视屏名称是指针03 ,举例子的时候我按照小甲鱼的例子 输出结果不对
本来达到的效果应该是将10个数字倒序排列,比如下边的代码原本0的位置放9,1的位置放8
希望能有人帮我看看哪里有问题 在这里提前谢谢各位啦
- #include<stdio.h>
- void main(){
- int i,a[10]={0,1,2,3,4,5,6,7,8,9};
- printf("转换顺序前:\n");
- for(i=0;i<10;i++){
- printf("%d ",a[i]);
- }
- printf("\n");
- reverse(a,10);
- printf("转换顺序后:\n");
- for(i=0;i<10;i++){
- printf("%d ",a[i]);
- }
- }
- void reverse(int *x,int n){
- int *p,temp,*i,*j;
- n = (n-1)/2;
- i = x;
- j = x+n-1;
- p = x+n;
- for(;i<=p;i++,j--){
- temp = *i;
- *i = *j;
- *j = temp;
- }
-
- }
复制代码
本帖最后由 superbe 于 2019-12-17 19:46 编辑
- #include<stdio.h>
- void reverse(int *x, int n);
- void main() {
- int i, a[10] = { 0,1,2,3,4,5,6,7,8,9 };
- printf("转换顺序前:\n");
- for (i = 0; i<10; i++) {
- printf("%d ", a[i]);
- }
- printf("\n");
- reverse(a, 10);
- printf("转换顺序后:\n");
- for (i = 0; i<10; i++) {
- printf("%d ", a[i]);
- }
- }
- void reverse(int *x, int n) {
- int *p, temp, *i, *j;
- //n = (n - 1) / 2; //n 被修改了, 后面的 j 就不对了
- i = x;
- j = x + n - 1;
- //p = x + n; //这行换成下一行
- p = x + (n - 1) / 2;
- for (; i <= p; i++, j--) {
- temp = *i;
- *i = *j;
- *j = temp;
- }
- }
复制代码
|
|