想了一下午没想出来
c++吧
全部回复
仅看楼主
level 6
玉之剔透 楼主
2016年05月28日 11点05分 1
level 6
玉之剔透 楼主
[惊哭]
2016年05月28日 12点05分 2
level 13
cout << "你要输几个数?"; cin >> n;
2016年05月28日 12点05分 4
那还是需要输入a,b,c啊
2016年05月28日 12点05分
level 14
如果输入都在一行的话,getline获取然后判断个数,不在一行cin无解,除非输入时手动加入eof标志
2016年05月28日 12点05分 5
getline怎么判断个数,求具体代码
2016年05月28日 12点05分
回复 玉之剔透 :可以把输入的定义为char,然后用strlen
2016年05月28日 13点05分
@玉之剔透 getline(cin,str);然后定义一个stringstream ss;然后int a[4],i;ss<<str;for(i=0;ss>>a[i];i++); i就是数字数量,a数组里存这些数字
2016年05月29日 03点05分
level 11
int n;if(cin>>a)n++;/*一直这样输入到c,然后:*/switch(n){case 3:
2016年05月28日 12点05分 6
思路就是这样,手机码的不花时间调半角字符了
2016年05月28日 12点05分
@125516639 if a一直都到c的话,不是把三个数都输入了吗,这样的话就只能判断三个数的最大值了
2016年05月28日 12点05分
@玉之剔透 自己多想想cin>>a>>b>>c做的是什么返回值是什么,if判断的是什么
2016年05月28日 12点05分
@玉之剔透 if(cin>>a)n++;不是一定读取a,是一旦正确读取了a就增加n你懂我的意思吗,如果没能正确读取c那n是几?
2016年05月28日 12点05分
level 8
你第一个if把所有数全读完了,第二个if不可能执行
2016年05月28日 13点05分 7
level 8
cin>>a>>b;if(cin>>c) cout<<max(a,b,c); else cout<<max(a,b);
2016年05月28日 13点05分 8
这样必须手动加入eof标志,否则只有两个数时候cin>>c会IO阻塞
2016年05月29日 03点05分
level 11
//max函数懒得抄写了
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int a,b,c;
int n;
if(cin>>a)n++;
if(cin>>b)n++;
if(cin>>c)n++;
switch(n)
{
case 2:
cout<<2<<endl;break;
case 3:
cout<<3<<endl;break;
}
system("pause");
return 0;
}
//以下是两个输入输出
1.
1 2
^Z
2
请按任意键继续. . .
2.
1 2 3
3
请按任意键继续. . .
//不想用重定向又不想手动EOF的话,如果数据在同一行就用istringstream
2016年05月28日 13点05分 9
非常感谢![笑眼]
2016年05月28日 14点05分
level 9
Int max(int x,int y){略}
int main()
{int a,b,c,m;
if(cin>>a>>b)
m=max(a,b);
if(cin>>c)
m=max(m,c);
cout<<m<<endl;
system("pause");
}
我作为一个初学者,只能做这么多了,手机打符号真费劲。
2016年05月29日 02点05分 11
level 9
我作为一个初学者,总是有热情的。
下面是一个随便输入几个数,总是输出最大的那个。
#include<iostream>
using namespace std;
int bigger(int x, int y){
return x > y ? x : y;
}
int main() {
int a, b;
cin >> a;
b = a;
while (cin >> a)
b=bigger(a, b);
cout << b << endl;
system("pause");
}
2016年05月29日 03点05分 12
level 8
用数组不就好了
2016年05月29日 03点05分 13
1