zoukankan      html  css  js  c++  java
  • 实验2

    实验结论

    2-28 实现一个简单的菜单程序,运行时显示"Menu:A(dd) D(elete) S(ort) Q(uit),Select one: "提示用户输入。输入A、D、S时分别提示"数据已经增加、删除、排序",输入Q时程序结束。

    (1)使用if...else语句进行判断。

    #include <iostream>
    using namespace std;
    int main() {
        char n;
        cout << "Menu:A(dd) D(elete) S(ort) Q(uit),Select one:"<<endl;
        cin>>n;
        while(n!='Q'){
            if (n=='A'){
                cout<<"数据已经增加"<<endl;
                cin>>n;
                continue;}
            else if (n=='D'){
                cout<<"数据已经删除"<<endl;
                cin>>n;
                continue;}
            else if (n=='S'){
                cout<<"数据已经排序"<<endl;
                cin>>n;
                continue;}
            else {
                cout<<"请输入A、D、S、Q,输入Q时退出程序!"<<endl;
                cin>>n;
                continue;}
        }
        return 0;
    }
    

    运行结果:

    (2)使用switch语句。

    #include <iostream>
    using namespace std;
    int main() {
        char n;
        cout<< "Menu: A(dd) D(elete) S(ort) Q(uit),Select one:"<<endl;
        cin>> n;
        while(n!='Q'){
           switch(n){
             case 'A':
                cout<<"数据已经添加"<<endl;
                   break;
             case 'D':
                 cout<<"数据已经删除"<<endl;
                   break;
             case 'S':
                 cout<<"数据已经排序"<<endl;
                   break;
            default:
                   cout<<" 请输入A、D、S、Q,输入Q时退出程序!"<<endl;
           }cin>> n;
        }
        return 0;
    }
    

    运行结果:

    2-29 用穷举法找出1——100间的所有质数并显示出来。

    (1)用for循环

    #include <iostream>
    using namespace std;
    int main() {
        int a,i;
        for(a=2;a<=100;a++)
        {
            for(i=2;i<a;i++)
            {
                if(a%i==0)
                break;
            }
                if (i==a)
                cout << a <<" " ;
            
        }
            return 0;
    }
    

    (2)用while循环

    #include <iostream>
    using namespace std;
    int main() {
        int i,a=2;
        while (a<=100)
        {
          i=2;
         while(i<a)
          {
            if (a%i==0)
                break;
                i++;
          }
            if (a==i)
                cout << a <<" " ;
            a++;
        }
        return 0;
    }
    

    (3)用do...while循环。

    #include <iostream>
    using namespace std;
    int main() {
        int a=1,i;
        do{
            a++;
            i=1;
           do{
                i++;
                if (a%i==0)
                break;
             }while(i<a);
          
            if (a==i)
            cout << a <<" " ;
            
        }while(a<100);
        return 0;
    }
    

    运行结果:

    • 判断一个数为质数:用该数除以1外的每一个比它小的正整数,如果能整除,则为合数;如果都不能整除,则为质数。

    2-32在程序中定义一个整型变量,赋予1-100值。要求用户猜这个数,比较两数大小,把结果提示给用户,直到猜对为止。

    (1)用while循环

    #include <iostream>
    using namespace std;
    int main() {
        int i=59,m;
        cout << "猜猜这个数是多少?(在1——100之间)"<<endl;
        cin>>m;
        while (m){
            if (i<m)
                cout <<"您猜的值太大了"<<endl;
            else if (i>m)
                cout <<"您猜的值太小了"<<endl;
            else
            {
                cout <<"恭喜您,猜对了!"<<endl;
                break;
                
            }
         cin>>m;
        }
        return 0;
    }
    

    (2)用do...while循环

    #include <iostream>
    using namespace std;
    int main() {
        int i=59,m;
        cout << "猜猜这个数是多少?(在1——100之间)"<<endl;
        do {
            cin>>m;
            if (i<m)
                cout <<"您猜的值太大了"<<endl;
            else if (i>m)
                cout <<"您猜的值太小了"<<endl;
            else break;
        }while (i!=m);
         
          cout <<"恭喜您,猜对了!"<<endl;
        return 0;
    }
    

    运行结果:

    2-34 口袋中有红、黄、蓝、白、黑五种颜色的球若干,每次从口袋中取出3个球,问有多少种取法?

    #include <iostream>
    using namespace std;
    int main() {
        enum color {red,yellow,blue,white,black};
        int i,j,k,n=0;
        for (i=red;i<=black;i++)
        {
            for (j=red;j<=black;j++)
            {
                if(i!=j)
                   for(k=red;k<=black;k++)
                   {
                        if (k!=i&&k!=j)
                            n+=1;
                   }
            }
                
        }
        cout << "total:"<<n<<endl;
        return 0;
    }
    

    运行结果:

    • 思路:按红、黄、蓝、白、黑的顺序取出第一个球,按红、黄、蓝、白、黑的顺序取出第二个球。判断与第一个球与第二个球颜色是否一致,如果不同,则按红、黄、蓝、白、黑的顺序取出第三个球,判断第三个球的颜色是否和第一个或者第二个相同。若都不同,则在总数上加1.

    实验总结与体会

    • 在实验2-29中,我将i++写在了while循环外,导致运行结果无限循环输出2.
    • 在实验2-34中,我一开始写的代码如下,输出的结果是30,我一直没想明白错在哪里,求指教
    #include <iostream>
    using namespace std;
    int main() {
        enum color {red,yellow,blue,white,black};
        int i,j,k,n=0;
        for (i=red;i<=black;i++)
        {
            for (j=red;j<=black;j++)
            {
               if(i==j)
                   break;
                else 
                   for(k=red;k<=black;k++)
                   {
                        if (k!=i&&k!=j)
                            n+=1;
                   }
            }
                
        }
        cout << "total:"<<n<<endl;
        return 0;
    }
    
  • 相关阅读:
    将 expression 转换为数据类型 int 时发生算术溢出
    将博客搬至CSDN
    山东省滕州市木石镇化石沟村QQ群116528924
    未能加载文件或程序集 Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad
    sql server 怎么实现mysql中group_concat,列转行,列用分隔符拼接字符串
    sql server 条件 not in (null)总是false
    SCRIPT7002: XMLHttpRequest: 网络错误 0x2ef3, 由于出现错误 00002ef3 而导致此项操作无法完成,浏览器中的Keep-Alive
    2015年总结之什么叫软件开发?
    XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式
    XML组成结构以及C#通过DTD验证规范性
  • 原文地址:https://www.cnblogs.com/jiahewang/p/8645758.html
Copyright © 2011-2022 走看看