【发布时间】:2013-04-09 22:05:58
【问题描述】:
我无法按照作业的预期提出布尔函数。我只需要一些解释,因为我想编写自己的代码。我应该编写一个 MIPS 代码,它实际上计算字符串中大写、小写、元音、辅音和数字的数量。我正在用 C++ 编写代码,然后我将翻译成 MIPS 程序集。我粘贴了下面的要求,然后是函数 bool consonant(char c) 的样子(我的教授给出的想法)。问题是我似乎遗漏了一些信息来使该功能正常工作。谁能向我提供有关该功能的更多信息?我不需要代码,只需要缺少的细节。您的帮助将不胜感激。
//下面的赋值要求
要确定 ASCII 字符 c 是元音还是辅音,请编写两个函数 bool vowel(char c) 和 布尔辅音(字符 c)。使用堆栈将字符参数传递给这些函数。避免长条件 测试字符是否为元音和辅音时的表达式。相反,使用两个全局数组 (表)包含用于实现元音()和辅音()的布尔标志。例如,一个名为 is_vowel 对字符 'a' 和 'A' 为 true,但对字符 'b' 和 'B' 为 false。
// function that returns 0 if c is a consonant, or 1 if c is not a consonant
bool consonant(char c)
{
const bool is_conson[30]={0,0,...1,1,1,0,0...};
return is_conson[c];
}
//Here is The Code (C++) that I wrote for testing purpose only using Dev-C++
#include <iostream>
#include <math.h>
#include <cstdlib>
using namespace std;
bool consonant(char c)
{
const bool is_conso[30]= {1,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,1,0,1,0,1,1,1,1,0,1,0,1,0,1};
return is_conso[c];
}
int main()
{
int i;
bool result;
char c;
char sentence[]="aaaabbbbb";
cout<<"the array: ";
cout<<sentence<<endl;
for (i=0; i<9; i++)
{
c=sentence[i];
result=consonant(c);
if (result==0)
cout<<c<<" is a Consonant"<<endl;
}
return 0;
}
【问题讨论】:
-
请输入实际代码。另外,为什么要检查 26 个字母的数组中有 30 个元素?最后,您是否意识到您不应该直接将
'a'或'A'常量作为数组的索引? -
is_conson中的元素数量是从哪里得出的 30? (提示 - 30 不够大) -
我只是选择 30 用于测试目的,但只要我缺少所有信息,我都会编写正确的代码。实际上是 256。
-
我们需要一个关于编程的具体问题,而不是请求“提示”或“提示”或“指导”。
标签: c++ arrays function char boolean