| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1025 人关注过本帖
标题:我写了一个很简单的程序,但是不知道为什么总是出错
只看楼主 加入收藏
as1069
Rank: 2
来 自:河北
等 级:论坛游民
威 望:1
帖 子:46
专家分:31
注 册:2014-6-10
结帖率:75%
收藏
已结贴  问题点数:8 回复次数:15 
我写了一个很简单的程序,但是不知道为什么总是出错
main()
{
  int a,b,sum;
  printf("input a and b ");
  scanf("%d%d",&a,&b);
  sum=add(a,b);
  printf("sum=%d+%d=%d\n,",a,b,sum);
}
add(x,y)
int x,y;
{
  renturn(x+y);
}
2014-06-11 13:19
魔方盒
Rank: 2
等 级:论坛游民
帖 子:4
专家分:24
注 册:2014-6-11
收藏
得分:0 
函数须先声明后使用,
#include<stdio.h>
void main()
{
  int a,b,sum;
  printf("input a and b \n");
  scanf("%d%d",&a,&b);
int add(int a,int b);
  sum=add(a,b);
  printf("sum=%d+%d=%d\n",a,b,sum);
}
 int add(int x,int y)
{
  return(x+y);
}
这样在试试。
2014-06-11 14:05
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
1 没引头文件而用了库函数 这样只有在TC等老环境下才正常
2 楼上说的 函数在声明前调用
3 楼上的代码void main()不符合C语言的标准
4 函数声明写在函数内部不是一种好的编程风格

3和4 不算错误 也就是说不是【对不对】而是【好不好】的问题
2014-06-11 14:09
chrisgardner
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:73
专家分:114
注 册:2013-9-25
收藏
得分:0 
在main中调用函数需要在mian之前声明函数原型int add(int x, int y);或者把被调用函数写在main之前
2014-06-11 14:19
as1069
Rank: 2
来 自:河北
等 级:论坛游民
威 望:1
帖 子:46
专家分:31
注 册:2014-6-10
收藏
得分:0 
四楼的说的对吗?
c语言不是main函数在哪都行吗

我已入坑
2014-06-11 15:34
chrisgardner
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:73
专家分:114
注 册:2013-9-25
收藏
得分:0 
回复 5 楼 as1069
同为新手,我个人的理解是,如果想在main中调用add,有两种情况,一个是在main之前加函数原型,那么add可以写在main后面,这样在main中调用add时编译器才知道add是个啥(该函数的返回值是什么类型,有几个参数,参数是什么类型),如果不加原型,就直接调用,编译器不认识这个函数,还有一个情况是,你直接就把add写在main之前,这样不用加原型。我的理解是这样的,如果有错误,请高手指正!
2014-06-11 15:58
as1069
Rank: 2
来 自:河北
等 级:论坛游民
威 望:1
帖 子:46
专家分:31
注 册:2014-6-10
收藏
得分:0 
我知道了
main()
{
  int a,b,sum;
  printf("input a and b :");
  scanf("%d%d",&a,&b);
  sum=add(a,b);
  printf("sum=%d+%d=%d\n",a,b,sum);
}
add(x,y)
int x,y;
{
  return(x+y);
}

我已入坑
2014-06-11 22:18
as1069
Rank: 2
来 自:河北
等 级:论坛游民
威 望:1
帖 子:46
专家分:31
注 册:2014-6-10
收藏
得分:0 
为什么b后面要加:
求解释

我已入坑
2014-06-11 22:20
imzaghi333
Rank: 2
来 自:江苏昆山
等 级:论坛游民
帖 子:34
专家分:61
注 册:2013-9-7
收藏
得分:0 
// b后面的冒号只是标点而已,表示后面输入数字。

#include <stdio.h>
int add(int x, int y);

int main(void)
{
    int a = 0;
    int b = 0;
    printf("Enter two numbers a and b: ");
    scanf("%d%d", &a, &b);
    printf("%d + %d = %d\n", a, b, add(a,b));
    return 0;
}
int add(int x, int y)
{
    return x+y;
}

非专业的C语言爱好者.正在学习中..........
2014-06-11 22:45
罗明豪
Rank: 2
等 级:论坛游民
帖 子:33
专家分:26
注 册:2014-5-25
收藏
得分:0 
#include <stdio.h>
int add(int x, int y)
{
    return x+y;
}
int main(void)
{
    int a=0,b=0;
    scanf("%d%d", &a, &b);
    printf("%d+%d=%d\n",a,b,add(a,b));
    return 0;
}
这样最简单。
2014-06-11 23:22
快速回复:我写了一个很简单的程序,但是不知道为什么总是出错
数据加载中...
 
   



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

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