1

我是 C++ 新手,我有一个小项目,我应该从用户那里获得 10 个数字,然后显示结果。

所以我写了这段代码:

#include<stdio.h>
int main() {
    int counter=1,
        allNumbers;
    float score;
    while(counter <= 10) {
        scanf("%f",&score);
        counter++;
    }

    printf("Your entered numbers are : %s\n",allNumber);
}

例如用户输入 2 3 80 50 ... 我想在结果中显示 2,3,80,50,...。

但我不知道我该怎么办!

4

2 回答 2

4

我不知道你在用什么书,但作者似乎在进入 C++ 领域之前教你 C。在不讨论他们的动机的情况下,在讨论理想的 C++ 解决方案之前,我将写一个与您的代码风格相似的答案。

  • 您需要一个数组来存储您的数字:double score[10]
  • 数组从零开始索引,因此更改counter为从零开始到九(而不是像现在一样从一开始到十)
  • 由于score是数组,&score[count]在调用中使用scanf
  • 要打印十个数字,您还需要一个循环。您需要一个标志来告诉您在打印的数字后是否需要逗号。printf("\n")在循环之后添加一个。

就“理想”的 C++ 解决方案而言,它应该看起来接近这个:

istream_iterator<double> eos;
istream_iterator<double> iit(cin); 
vector<double> score;
copy(iit, eos, back_inserter(score));
ostream_iterator<double> oit (cout, ", ");
copy(score.begin(), score.end(), oit);

但是,在您研究 C++ 标准库及其对迭代器的使用之前,讨论它仍然很困难。

于 2013-04-04T20:13:12.377 回答
0

您可以通过声明一个包含十个数字的数组来实现。你的代码在这里:

#include <stdio.h>
int main() {
int counter=0;
float allNumbers[10];
while(counter < 10) {
    scanf("%f",&allNumbers[counter]);
    counter++;
        }

printf("Your entered numbers are : \n");
counter=0;
while(counter < 10) {
    printf("%f , ",allNumbers[counter]);
    counter++;
        }
}
于 2013-04-04T22:32:45.120 回答