一个使用6位数字的简单程序
A simple program using 6 digit number
我想制作一个程序,要求您给出一个六位数。在屏幕上,我会打印出给出的六个个个位数,这些数字的平均值,以及的最小值和最大值
我想到的最简单的方法是制作一个整数表。但是,给出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;
}
演示
您应该注意关于代码示例的一些要点:
float
不应用于表示数字,这些数字只是0-9范围内的整数。使用unsigned int
左右(unsigned char
就足够了,但我不想增加混淆)- 如果要使用
float
值来获得平均值,则需要将参与计算的整数值强制转换为float
- 始终在变量的定义点初始化变量
sum
在首次使用时未初始化- 比较器将第一个元素(
numb[0]
)与其自身进行比较 - 在C++中,您可以在需要的地方声明变量。这使得代码更易于阅读
- 您正在混合
printf
和cout
- 你的断线在奇怪的地方
- 你读到的不是一个六位数,而是六个数字
编辑:忽略我的列表的第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;
}
相关文章:
- 最高有效数字侧的第N位
- 如何获取一个数字的前3位
- 输出错误,问题是找到总和5000位数字cpp
- 顺时针迭代旋转 3 位数字
- 为什么将双精度转换为 int 似乎在第 16 位数字之后将其四舍五入?
- 使用 cin 时接受小数点后的 2 位数字
- 您可以使用 setfill() 来设置 fill 2 位数字吗?
- 斐波那契数列部分和的最后一位数字
- 我需要找到 N 位数字的总和
- 在不添加进位的情况下添加数字的C++程序
- 如何在不使用 C++ 中的数组或函数的情况下查找 N 位数字的所有排列
- 如何通过使用 2 位或更多数字的 XOR 运算符来执行此操作C++问题
- 如何在C ++中替换整数的前两位数字?
- 将最多 50 位数字的 2 个数字相乘
- C++ 中 11 位数字的数字的乘积
- 如何旋转给定数字的位
- 两个数字按位连接
- 作为数字的位的c++列表
- 反转数字的位
- C++:数字与位