Cjiajia_010 2021-12-04 22:42 采纳率: 88.6%
浏览 6
已结题

请问我对这个程序的几个想法我是不是对的

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include <stdio.h>
#include <string.h>
int main (){
 int n,m;char a[100];
 scanf("%d\n",&n);
 for(int i=0;i<n;i++)
 {
  scanf("%s",a);
  m=strlen(a);
  if(a[m-1]=='y'||a[m-1]=='s'||a[m-1]=='x'||a[m-1]=='o') printf("%ses\n",a);
  else if(a[m-1]=='h'&&(a[m-2]=='c'||a[m-2]=='s')) printf("%ses\n",a);
  else printf("%ss\n",a);
 }
 return 0;
}

我是这么想的 scanf("%d\n",&n);scanf明明不需要\n符号,虽然我知道因为如果读取了换行符号那么缓冲区就没有了回撤,那么久不需要getchar()去吸收回撤了,所以说一般人想法是scanf("%d",&n);后面加一个getchar()请问这对的吗?但是我有疑问scanf不是不会读取\n空格这些符号的么好奇怪,还有一个问题对于for循环里面的scanf("%s",a);明明回撤一直在缓冲区一直循环到结束,为啥后面还能继续输入,是因为遇到printf里的\n还是遇到}这个符号缓冲区会刷新,其实就是想知道缓冲区刷新的条件。问题比较多因为都不讲

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月12日
    • 创建了问题 12月4日

    悬赏问题

    • ¥20 公众号如何实现点击超链接后自动发送文字
    • ¥15 用php隐藏类名和增加类名
    • ¥15 算法设计与分析课程的提问
    • ¥15 用MATLAB汇总拟合图
    • ¥15 智能除草机器人方案设计
    • ¥15 对接wps协作接口实现消息发送
    • ¥15 SQLite 出现“Database is locked” 如何解决?
    • ¥15 已经加了学校的隶属邮箱了,为什么还是进不去github education?😭
    • ¥15 求会做聚类,TCN的朋友有偿线上指导。以下是目前遇到的问题
    • ¥100 无网格伽辽金方法研究裂纹扩展的程序