我有一个编写c ++程序的任务:
我已经尝试过编写这个但是我遇到了很多错误,尤其是gamma数组。
#include<iostream>
using namespace std;
void main()
{
char gamma[];
int i;
cout<<"insert characterst//insert -1 when you finish "<<endl;
while(i!=-1)
{
cin>>i;
gamma[]='i';
}
char vowels[]={'a','e','i','o','u'};}
答案 0 :(得分:0)
你看起来很顺利。
声明一个名为gamma的数组,类型为char。
char gamma[];
这部分几乎是正确的,尽管数组的大小为0.如果你想给它一个10的大小,你可以将它改为
char gamma[10];
声明一个名为元音的数组,类型为char。
这部分原样很好。
char vowels[]={'a','e','i','o','u'};
该列表会自动为vowels
提供5的大小并指定值。
提示用户在数组gamma中输入n个字符。
你希望用cout / cin线完美地完成它。一个小的挑剔是你应该更喜欢使用&#34; \ n&#34;在cout结束而不是endl
,因为它更快。
cout << "insert characterst//insert -1 when you finish\n";
您还需要更改写入阵列的方式。您必须指定要写入的索引。
gamma[0] = 3; // Set the first element of gamma to 3
gamma[2] = 11;// Set the third element of gamma to 11
您需要在while循环中添加一个计数器,以了解您要写入gamma
的位置
int counter = 0;
while(...) {
cin >> i;
gamma[counter] = i;
counter++;
}
您还需要在while循环中添加一个检查,以确保您不会写入伽玛阵列的末尾。 这可能是导致错误的原因。
例如,如果我们定义的伽玛大小为10,则它只能容纳10个字符。尝试将11个字符写入gamma可能会导致程序崩溃。尝试添加支票,如:
while( i != -1 && counter < 10) // where 10 is capacity of gamma
定义了一个名为save vowels的函数,它确定并返回gamma数组中元音字母的数量,并将它们保存在元音数组中。
在这一点上你没有提出任何问题,所以我无法帮助你。