| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2112 人关注过本帖
标题:关于scanf与cin的区别(求大佬)
只看楼主 加入收藏
流照君
Rank: 2
等 级:论坛游民
帖 子:66
专家分:74
注 册:2018-5-7
结帖率:70%
收藏
已结贴  问题点数:12 回复次数:2 
关于scanf与cin的区别(求大佬)
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,
现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。
输入格式:
输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。
输出格式:
对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。
输入样例:
2
ChuiZi
JianDao
Bu
JianDao
Bu
ChuiZi
ChuiZi
End
输出样例:
Bu
ChuiZi
Bu
ChuiZi
JianDao
ChuiZi
Bu
程序代码:
#include<iostream>
#include<cstring>
#include<stdio.h>
using namespace std;
int main()
{
    int n,m=0;
    string s,c;
    cin>>n;
    while(cin>>s)
    {    
    if(s=="End")
    break;
        m++;
        if(m%n==1&&m!=1)
        {
        cout<<s<<endl;
        m=0;
        }
        else
        {
        if(s=="ChuiZi")
        cout<<"Bu"<<endl;
        if(s=="JianDao")
        cout<<"ChuiZi"<<endl;
        if(s=="Bu")
        cout<<"JianDao"<<endl;
        }
    }
    return 0;
}
    

请教一下为什么我把
while(cin>>s)
    {   
    if(s=="End")

中的cin>>s改为scanf("%s"",&s)
就错了
搜索更多相关主题的帖子: scanf cin 输入 代表 cout 
2019-04-15 21:43
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:12 
%s 对应的只能是 char*
2019-04-15 22:45
流照君
Rank: 2
等 级:论坛游民
帖 子:66
专家分:74
注 册:2018-5-7
收藏
得分:0 
scanf只能输出C语言内置的数据,而string不是内置的,只是一个扩展的类,这样肯定是链接错误的。string不等于char*,&a代表的是这个字符串的存储地址,并不是指向字符串的首地址,aa&nbsp;&nbsp;&nbsp; 对象中包含一个指向"string"的指针, &aar得到的是这个对象的地址,不是"string"的地址。

这个意思
2019-04-16 10:03
快速回复:关于scanf与cin的区别(求大佬)
数据加载中...
 
   



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

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