绯翠苍穹吧 关注:5贴子:383
  • 9回复贴,共1

[再开一贴]记录下学习中的问题及解法

只看楼主收藏回复

小鸟镇楼,小鸟赛高!!!!!!


IP属地:上海1楼2014-10-22 16:43回复
    2楼书签,方便查阅


    IP属地:上海2楼2014-10-22 16:44
    收起回复
      将一个正整数分解质因数:
      1.首先明白什么是质数,并且能用代码判断一个数是否是质数,比如判断3是不是质数
      2.将一个正整数分解质因数,就是将一个正整数分解成几个质数相乘,例如:90=2*3*3*5,可以看到每个相乘的数都是质数。
      3.要求输入90,打印出90=2*3*3*5
      #include<iostream>
      using namespace std ;
      int main()
      {
      int n ;
      bool b = 1 ;
      cout << "请输入一个数:" << endl ;
      cin >> n ;
      int i = 1 , j = 1 ;
      for( i = 1 ; i < n ; i++ )
      {
      if( n % i == 0 && i != 1 )
      {
      b = 0 ;
      break ;
      }
      }
      if( b == 1 )
      {
      cout << n <<"是质数" << endl ;
      cout << n << "=" << n << "*1" << endl ;
      }
      else
      {
      cout << n << "不是质数" << endl ;
      cout << n << "=" ;
      for( i = 1 ; i <= n ; i++ )
      {
      for( j = 1 ; j <= i ; j++ )
      {
      if( n % j == 0 && j != 1 )
      {
      cout << j ;
      n /= j ;
      if( n == 1 )
      {
      break ;
      }
      cout << "*" ;
      }
      }
      }
      }
      cout << endl ;
      return 0 ;
      }


      IP属地:上海3楼2014-10-22 21:41
      回复
        使用cout函数输出如下图案,要求可以通过使用cin>>n,根据n(行数)
        画出指定n行的菱形
        *
        ***
        *****
        *******
        *****
        ***
        *
        #include<iostream>
        using namespace std;
        int main()
        {
        int n ;
        int i , j , k ;
        cout << "请输入行数:" << endl ;
        cin >> n ;
        int temp = ( n + 1 ) / 2 ;
        if( n % 2 == 0 )
        {
        cout << "输入的是偶数,无法输出菱形" << endl ;
        }
        else
        {
        for( i = 0 ; i < temp ; i++ )
        {
        for( j = 0 ; j < temp - i ; j++ )
        {
        cout << " " ;
        }
        for( k = 0 ; k < 2 * i - 1 ; k++ )
        {
        cout << "*" ;
        }
        cout << endl ;
        }
        for( i = temp ; i > 0 ; i-- )
        {
        for( j = 0 ; j < temp - i ; j++ )
        {
        cout << " " ;
        }
        for( k = 0 ; k < 2 * i - 1 ; k++ )
        {
        cout << "*" ;
        }
        cout << endl ;
        }
        }
        return 0 ;
        }


        IP属地:上海4楼2014-10-23 23:06
        回复
          1、创建五个学生信息,使用一维数组存储学生分数,使用二维数组存储学生名字
          2、对这五个学生的分数由高到低排序
          3、输出这五个学生的信息,分数由高到低,名字和分数可以自已设定,但是格式要求如下方式输出:
          小明:90分
          小红:80分
          小张:70分
          小强:60分
          小兵:50分
          #include<iostream>
          using namespace std;
          int main()
          {
          int score[5] = { 50 , 80 , 70 , 90 , 60 };
          char *name[5] = {"小兵","小红","小张","小明","小强"};
          int itemp=0;
          char *ctemp=NULL;
          int i = 0 , j = 0 ;
          for(i=0;i<5;i++)
          {
          for(j=0;j<4-i;j++)
          {
          if(score[j]<score[j+1])
          {
          itemp=score[j];
          score[j]=score[j+1];
          score[j+1]=itemp;
          ctemp=name[j];
          name[j]=name[j+1];
          name[j+1]=ctemp;
          }
          }
          }
          for(i=0;i<5;i++)
          {
          cout<<name[i]<<":"<<score[i]<<endl;
          }
          }


          IP属地:上海5楼2014-11-20 23:47
          回复
            1、从键盘输入15个整数,存放到数组中
            2、对这个数组以逆序方式重新存放,只能使用这一个数组,不能创建新的数组,必须使用指针方式
            3、将这个数组的数据输出,必须用指针的方式
            #include<iostream>
            using namespace std;
            int main()
            {
            int Array[15];
            int *pTmp=Array;
            int temp=0;
            int i=0;
            for(i=0;i<15;i++)
            {
            Array[i]=i;
            }
            for(i=0;i<7;i++)
            {
            temp=*(pTmp+i);
            *(pTmp+i)=*(pTmp+14-i);
            *(pTmp+14-i)=temp;
            }
            for(i=0;i<15;i++)
            {
            Array[i]=*(pTmp+i);
            }
            for(i=0;i<15;i++)
            {
            cout<<Array[i]<<endl;
            }
            return 0;
            }


            IP属地:上海6楼2014-11-22 14:48
            回复