• C Primer Plus汇总 (二)错误笔记2


    特别注意可恶的\n啦,为什么最后ch的值会变?求助!!!

    可恶可恶啊http://tieba.baidu.com/p/1429836706

    include<stdio.h>
    #include<stdbool.h>
    int main(void)
    {
     int w=1;
     float s;
     char ch;
     bool is,z; while(w)
     {
     for(is=true;is==true;)
     {
     z=true;
     printf("***************\n");
     printf("请输入下列字母\n");
     printf("a)朝鲜蓟 1.25$/磅\n");
     printf("b)甜菜 0.65$/磅\n");
     printf("c)胡萝卜 0.89$/磅\n");
     printf("q)退出\n");
     while((ch=getchar())&&z==true)
     {
     switch(ch)
     {
     case 'a':s=1.25;z=is=false;break;
     case 'b':s=0.65;z=is=false;break;
     case 'c':s=0.89;z=is=false;break;
     case 'q':z=s=false;break;
     default:z=false;printf("DONE,请重新输入\n");break;
     }
     }
     }
     //if(ch=='a')
     // printf("q");
     printf("1111111111%c",ch);
     }
     printf("循环结束");
    return 0;
    }

    程序能正常输出1111111,DONE也能输出 可是去掉注释符//ch的值却不能显示

     

    我错了,果然是\n

    include<stdio.h>
    #include<stdbool.h>
    int main(void)
    {
     int w=1;
     float s;
     char ch;
     bool is,z; while(w)
     {
     for(is=true;is==true;)
     {
     z=true;
     printf("***************\n");
     printf("请输入下列字母\n");
     printf("a)朝鲜蓟 1.25$/磅\n");
     printf("b)甜菜 0.65$/磅\n");
     printf("c)胡萝卜 0.89$/磅\n");
     printf("q)退出\n");
     while(z==true&&(ch=getchar()))
     {
     if(ch!='\n')
     {
     switch(ch)
     {
     case 'a':s=1.25;z=is=false;break;
     case 'b':s=0.65;z=is=false;break;
     case 'c':s=0.89;z=is=false;break;
     case 'q':z=s=false;break;
     default:z=false;printf("DONE,请重新输入\n");break;
     }
     printf("1%c",ch);
     }
     printf("2%c",ch);
     }
     printf("3%c",ch);
     }
     //if(ch=='a')
     // printf("q");
     printf("4%c",ch);
     }
     printf("循环结束");
    return 0;
    }

    被除数为0的悲剧

    http://tieba.baidu.com/p/1441525681

    include<stdio.h>
    #include<ctype.h>
    int put(char x,int y,int z);
    int main(void)
    {
     int a,b;
     char ch;
     a=b=0;
     while((ch=getchar())!='#')
     {
     put(ch,a,b);
     }
     printf("共%d个字母,%d个单词,平均每个单词%d个字母.\n",a,b,a/b);
     return 0;
    }
    int put(char x,int y,int z)
    {
     if(isalpha(x))
     y++;
     else if(isblank(x))
     z++;
     return 0;
    }

    啊啊啊,我又2了
    除以0了

  • 相关阅读:
    .net 用户控件ascx.cs注册js脚本代码无效果
    Sql-exec
    C# 复制指定节点的所有子孙节点到新建的节点下
    C# 拷贝指定文件夹下的所有文件及其文件夹到指定目录
    svn 命令
    C语言运算符优先级
    两级宏&&字符串化宏
    [C++]#if !defined 的作用
    四面体ply格式文件图和数据对应关系分析
    PLY格式介绍
  • 原文地址:https://www.cnblogs.com/zero5/p/2602548.html
Copyright © 2020-2023  润新知