如何使用带有文件结束控制循环和标记控制循环的while语句

时间:2017-12-05 03:08:13

标签: c++ while-loop nested-loops eof sentinel

我刚从护理学转到计算机科学专业,我不知道我们一直在做的后期任务是怎么回事。我最终迷路了。我试图看看如何处理这个特定的程序,但是,我仍然不了解如何。

基本上这里发生的是,我需要创建一个c ++程序,它在屏幕上生成一个序列的最大值,最大值所在的位置,该值等于1所需的步数,以及x值。

顺便说一句,所有这些数据都应该从文件中读取。

例如,为了更清楚地说明我在说什么,

有两个方程用于x的这个随机值,最终得到1。

奇数编号值= 3 *编号+ 1 偶数值= num / 2

例子。 75在数据文件中。 75很奇怪。乘以75乘3并加1得到226. 226是偶数。除以2.你得到113.依此类推,直到你最终达到1。 这是看起来像:

x = 75,然后k = 14,序列中的数字为:75,226,113,340,170,
85,256,128,64,32,16,8,4,2,1。

k将引用它达到1所采取的步骤.4将是最大值在该序列中的位置。

我有一些非常糟糕的代码......请忽略它有多糟糕。我只是想不出如何用我给出的信息写下来。

#include <iostream>
using namespace std;


int main (){

  int x;//The integer in the file                                                
  int count=0; // Counting how many integers there are in the file               
  int steps; // Number of steps it takes to reach 1                              
  int largestValue; // Largest Value in the sequence                             
  int position; // The position of where the largest value is in the sequence    
  int a;// Number that needs to be constantly changing in a sequence             
  int counter = 0; // Counting the values in a file                              

 cin >> x;

 while(!cin.eof()){

   cin >> x;
   counter++;
 if (x % 2 == 0){
  a = x/2
   else
 a = (3 * x) + 1
    }


  cout << "Starting at "<< x << " it takes " << steps  << "to reach 1" << endl;
  cout << "The largest number in the series is" << largestValue << "at position"
 << position << endl;

  return 0;
}

0 个答案:

没有答案