一个使用6位数字的简单程序

A simple program using 6 digit number

本文关键字:数字 6位 简单 程序 一个      更新时间:2023-10-16

我想制作一个程序,要求您给出一个六位数。在屏幕上,我会打印出给出的六个个个位数,这些数字的平均值,以及的最小值和最大值

我想到的最简单的方法是制作一个整数表。但是,给出6位数字会导致表在每个数字处使用空格。有没有一种简单的方法可以让我写一个没有空格的6位数,并做同样的事情?

这是代码:

#include <iostream>
#include <stdio.h>
#include <cstdio>
using namespace std;
int main() 
{
    float numb[6], max, min;
    int i;
    float sum;
    float average;
    cout << "Give a six digit number: ";
    for (i = 0; i < 6; i++) {
        cin >> numb[i];
    }
    cout << "The number you gave its :n ";
    for (i = 0; i < 6; i++) {
        printf("%f ,", numb[i]);
    }
    for (i = 0; i < 6; i++) {
        sum = sum + numb[i];
    }
    average = sum / 6;    
    cout << "Average is n" << average;
    max = numb[0];
    for (i = 0; i < 6; i++) {
        if (max < numb[i])
            max = numb[i];
    }
    printf("Largest element: %f", max);
    min = numb[0];
    for (i = 0; i < 6; i++) {
        if (min > numb[i])
            min = numb[i];
    }
    printf("Smallest element: %f", min);
}
 float sum;

sum在您的程序中未初始化,但也已使用-

 for(i=0;i<6;i++){
        sum=sum+numb[i];

初始化它,然后使用它。

有没有一种简单的方法可以让我写一个没有空格的6位数,然后做同样的事情?

按照的思路做点什么

std::string input;
std::cout << "Enter a six digits number: ";
std::cin >> input;
if(input.size() == 6) {
    for(char C : input) {
 // for(size_t I = 0; I < 6; ++I) // C++98 version
    // char C = input[I]; // C++98 version
       if(std::isdigit(C)) {
           int digit = C - '0'; // convert char to a number
           // do whatever you want with the digit
       }
       else {
           std::cout << "Error in input, " << C << " is not a digit" << std::endl;
           break;
       }
   }
}
else {
   std::cout << "Error: Enter exactly six digits please" << std::endl;
}

演示


您应该注意关于代码示例的一些要点:

  1. float不应用于表示数字,这些数字只是0-9范围内的整数。使用unsigned int左右(unsigned char就足够了,但我不想增加混淆)
  2. 如果要使用float值来获得平均值,则需要将参与计算的整数值强制转换为float
  3. 始终在变量的定义点初始化变量
  1. sum在首次使用时未初始化
  2. 比较器将第一个元素(numb[0])与其自身进行比较
  3. 在C++中,您可以在需要的地方声明变量。这使得代码更易于阅读
  4. 您正在混合printfcout
  5. 你的断线在奇怪的地方
  6. 你读到的不是一个六位数,而是六个数字

编辑:忽略我的列表的第6点(使用6个数字)

#include <iostream>
using namespace std;
int main()
{
    cout << "Give a six digit number: ";
    //Read numbers
    float numb[6];
    for (int i = 0; i < 6; i++) {
        cin >> numb[i];
    }
    //Print numbers
    cout << "The number you gave its : ";
    for (int i = 0; i < 6; i++) {
        cout << numb[i] << ",";
    }
    cout << endl;
    //Calculate sum
    float sum = 0;
    for (int i = 0; i < 6; i++) {
        sum = sum + numb[i];
    }
    cout << "Sum is " << sum << endl;
    //Calculate average
    float average = sum / 6;
    cout << "Average is " << average << endl;
    //Calculate max
    float max = numb[0];
    for (int i = 1; i < 6; i++) {
        if (max < numb[i])
            max = numb[i];
    }
    cout << "Maximum is " <<  max << endl;
    //Calculate min
    float min = numb[0];
    for (int i = 1; i < 6; i++) {
        if (min > numb[i])
            min = numb[i];
    }
    cout << "Minimum is " << max << endl;
}