注册 登录
编程论坛 C++教室

继续求助····我是无助的新手··

kino 发布于 2010-03-17 11:00, 1139 次点击
很佩服那些自学C++和C的人··
我怎么就不行··
#include<stdio.h>
#include<conio.h>
void main()//主函数
{
    int max(int x,int y);//对被调用函数max的声明
    int a,b,c;//定义变量a,b,c
    scanf("%d,%d",&a,&b);//输入变量a和b的值
    c=max(a,b);//调用max函数,并将得到的值赋给c
    printf("max=%d\n",c);//输出c的值
}
int max(int x,int y)//定义max函数,函数值为整型,形式参数x,y为整型
{
    int z;//max函数中的声明部分,定义本函数中用到的变量z为整型
    if(x>y)z=x;
    else z=y;
    return(z);//将z的值返回,通过max函数带回到调用函数的位置
    getch();
}
这个是书上的例题,求2数的较大者
然后我按这个试了下
但是为什么我得到max的答案永远是
a位置上的值
也就是,打个比方
输入
7,4
max=7
5,6
max=5
大家帮忙看下,在线=,谢谢
19 回复
#2
秀痘魔导士2010-03-17 11:09
尝试加断点之后跟踪每个变量值,你要这么做,永远学不会C++的。
#3
kino2010-03-17 11:14
额,啥是断点~,
怎么做··你是说问问题么~~
不管怎么样先谢谢忠告
不过我不知道怎么学啊,我现在自己看书,很多地方看不懂··
 
#4
胡马平2010-03-17 11:16
函数的声明应该在主函数的外面,试一下!
#5
kino2010-03-17 11:31
回复 4楼 胡马平
不行,我试过了
而且这个是例题,本来就应该对的···
问题是出来的结果不对··
 
#6
胡马平2010-03-17 12:28
把主函数的类型改为int,是void 时我的编译器无法编译,这样运行没问题!!结果也对。不过你的哪里错了我也不知道。
#7
chengwen10162010-03-17 12:28
这个代码没有问题。
看是不是你自己输入的时候忘记输入 “,” 隔开,直接输入 5 6 了。
#8
quietstar2010-03-17 13:12
这是哪本书上的例题啊?感觉是在写c程序,而不是c++。楼主不要给这样的书误导了,c++程序不这样写的。下面是我修改过的,你可以参考下,看下c++程序的风格:
#include<iostream>

using namespace std;

int max(int x,int y);

int main()
{
    int a,b,c;
    cin>>a>>b;
    c=max(a,b);
    cout<<c<<endl;
    return 0;
}
int max(int x,int y)
{
    return(x>y?x:y);
}
#9
TIC2010-03-17 13:28
7楼说的对呀!输入的时候要看清楚你的scanf()的格式!否则结果就会不一样!
#10
kino2010-03-17 15:35
回复 9楼 TIC
scanf格式没问题我用的是,这个我知道
貌似不是这个问题
谢谢
#11
kino2010-03-17 15:37
回复 8楼 quietstar
报告,确实是C程序里的,但是
书本名是
C程序设计,谭浩强的书,不都说他的书好- -
而且书上也说用VC来做上机题,没有关系~
不过还是谢谢了~
 
#12
kino2010-03-17 15:40
回复 8楼 quietstar
怪了,我用了你的程序在我机子上试了下,出来的结果也不对···
奇怪··
#13
quietstar2010-03-17 17:18
回复 12楼 kino
不要用逗号作为分割符,可以空格,tab或者直接回车。
谭浩强的书,呵呵,不予置评,你爱用就用呗,以后有些东西搞不清楚,别怪我事先没提醒你...
#14
quietstar2010-03-17 17:34
回复 11楼 kino
这是c++论坛,不是c论坛,所以在讨论问题的时候,我们都会用c++的方式;如果只是c方面的,建议去c论坛,那里得到的帮助更多。
#15
apull2010-03-17 17:51
scanf("%d,%d",&a,&b);//输入变量a和b的值
输入方式是半角的逗号“,”,你检查下
#16
lgylhw2010-03-17 21:49
这个是不是够简单?
#include<iostream>
using namespace std;
int main()
{
    int a,b,max;
     cout<<"请输入两个数"<<endl;
     cin >>a >>b;
     max=a>b?a:b;
     cout<<"max="<<max<<endl;

}
#17
cnfarer2010-03-18 10:18
回复 10楼 kino
可我觉得就是这个问题,输入时一定要在两个数之间加",".
#18
pywepe2010-03-18 11:06
回复 楼主 kino
你把max函数写在main前面的话 就不用声明了


我就喜欢那样  少写很多代码 的
#19
one_june2010-03-18 11:37
8楼 16楼正解...
#20
mghxz2522010-03-18 11:41
主函数的类型改为int,就可以运行,结果没问题啊。
1