空白答案动态数组

时间:2017-05-11 09:31:07

标签: c++

已经完成了将我的代码更改为动态数组的任务。 程序要求您输入1到100的数组大小。在输入后,用正常的数组teikums [100]逐个1 v元音;它输出元音和元音量。 被赋予了一个没有" new"来制作动态数组的任务。 但是在添加动态数组之后:

char *teikums = (char*)malloc(100);

输出空格。

#pragma hdrstop
#pragma argsused

#include <string>
#include <tchar.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <iomanip>
#include <sstream>

using namespace std;

int main() {
  char *teikums = (char*)malloc(100);
  int c, i, count, patsk; // Patskani
  char yesno; // Atkartosanas Mainigais

  do {
    cout << " " << teikums[i];
    system("cls"); // Notira Ekranu
    do {
      patsk = 0; // Pieskir vertibu
      cout << "Input array size 1-100: ";
      cin >> count;
      if (count > 100 || count < 1) {
        cout << "Array cant be lower or higher than 0\n";

      }
    } while (count > 100 || count < 1);
    do {
      cout << "Input " << count << "letters one by one\n";
      for (i = 1; i <= count; i++) {

        cin >> teikums[i];
        if (!((teikums[i] >= 'a' && teikums[i] <= 'z') || (teikums[i] >=
          'A' && teikums[i] <= 'Z'))) {

          cout << "Error! Only input letters\n";
          i = i - 1;

        }
      }
    } while (i <= count);
    cout << "\nUsed Vowels:";
    for (i = 0; teikums[i] != '\0'; i = i + 2) {
      if (teikums[i] == 'a' || teikums[i] == 'e' || teikums[i] == 'i' ||
        teikums[i] == 'o' || teikums[i] == 'u' || teikums[i] == 'A' ||
        teikums[i] == 'E' || teikums[i] == 'I' || teikums[i] == 'O' ||
        teikums[i] == 'U') {
        ++patsk;

        cout << " " << teikums[i];
        teikums[i] = 0;
      }

    }

    cout << "\nVowel ammount: " << patsk;

    cout << ("\nDo you wish to continue(Y/Else):");

    // prasa lietotajam vai velas atkartot
    cin >> yesno;
    if (yesno == 'y' || yesno == 'Y') {

    }
    else {
      return 0;
    }
  } while (tolower(yesno) != 'n');
  getch();
}

1 个答案:

答案 0 :(得分:0)

在这一行:

cout << " " << teikums[i];

i未初始化,因此包含不确定的值。

这会造成你所有的麻烦。但其他地方可能还有其他问题,我没有检查所有细节。

如果它与char teikums[100];一起使用,则纯属巧合。

Google&#34; C未定义的行为&#34;了解更多信息。