| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3080 人关注过本帖
标题:不知道为什么不能运行!
只看楼主 加入收藏
自由而无用
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:61
专家分:1456
注 册:2021-8-9
收藏
得分:0 
scanf( "%d ,%d", &a, &b ); input 1,2
scanf( "%d %d", &a, &b ); input 1 2
2021-08-10 07:31
repair1000
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2021-8-8
收藏
得分:0 
回复 楼主 一路向北!
感觉{  }少一个
2021-08-12 08:23
狮子头
Rank: 2
等 级:论坛游民
帖 子:17
专家分:10
注 册:2021-5-22
收藏
得分:0 
你说的‘不能运行’是双击之后不能运行吗?
退出或安全防护软件一下或关掉防护软件的免打扰可以了。
2021-08-22 13:43
llsh77
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2021-8-21
收藏
得分:0 
swap(*pointer_1,*pointer_2);这里不用加星
2021-08-22 19:43
守护墨迫
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2021-8-22
收藏
得分:0 
5楼大佬已经为你解决问题,我说下你源代码的几个错误点:
1、你函数声明时没有分号(;);
2、书写scanf函数时%d和%d是逗号连接,我不知道你这是有意还是无意,我还是想提醒一下,你这样写运行时输入数据也要用逗号分隔,如果写成%d%d,运行时可以回车分隔;
3、swap函数体没有大前括号({),感觉你有点粗心。
2021-08-29 14:37
不会游泳的虾
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:27
帖 子:108
专家分:675
注 册:2021-7-1
收藏
得分:0 
修改如下,问题见注释,供参考:
程序代码:
#include<stdio.h>
void swap(int *p1,int *p2);//少了 ‘;’
int  main()
{
    int a,b;
    int *pointer_1;
    int *pointer_2;
    scanf("%d%d",&a,&b);//scanf("%d,%d",&a,&b);
    pointer_1=&a;
    pointer_2=&b;
    if(a<b)
    {
                         //swap(*pointer_1,*pointer_2);
         swap(pointer_1,pointer_2);
    }
    printf("max=%d\nmin=%d\n",a,b);
    
    return 0;
}
void swap(int *p1,int *p2)
{                         //少了‘{’
    int temp;
    temp=*p1;
    *p1=*p2;
    *p2=temp;
}
2021-08-29 15:38
Mrluoyuzhao
Rank: 1
等 级:新手上路
帖 子:5
专家分:7
注 册:2021-9-1
收藏
得分:0 
调用swap函数传参你为什么将指针解引用了,解引用出来就是a,b值了。这里传参要和你声明的函数参数一致,用地址
2021-09-02 17:11
yyangdid
Rank: 1
等 级:新手上路
威 望:1
帖 子:2
专家分:4
注 册:2021-4-24
收藏
得分:0 
程序代码:
#include <stdio.h>

void swap(int *p1, int *p2);

int main(void) {
  int a, b;
  int *pointer_1;
  int *pointer_2;
  scanf("%d%d", &a, &b); //此处两个 %d 之间不要用任何分隔符,输入时可使用空格、回车、tab分隔输入两个数
  pointer_1 = &a;
  pointer_2 = &b;
  if (a < b) {
    // 此处调用 swap 函数时,实参不要 * 号,因为 pointer_1 和 pointer_2 定义时就已经是指针了
    // swap 要求参数为指针,*pointer_1 其实是表示指针指向的内容,传参不符
    swap(pointer_1, pointer_2);
  }
  printf("max=%d\nmin=%d\n", a, b);
}

void swap(int *p1, int *p2) {
  int temp;
  temp = *p1;
  *p1 = *p2;
  *p2 = temp;
}


没注意到有两页回复,有大佬已经解决了 这是我第一个帖子,也留着吧

另外,感觉你是用很简单的文本编辑器写的代码,推荐还是用 IDE 吧,vs、codeblock、codelite 等等,因为会直接给你错误提示,这样可以避免很多小的错误,例如你函数声明没写分号、函数定义没有左大括号,这种小错误可以直接避免了,传参错误自然也有提示

[此贴子已经被作者于2021-9-3 20:42编辑过]

2021-09-03 20:31
快速回复:不知道为什么不能运行!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018507 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved