30/09/2018, 19:04

Tìm từ chứa nhiều nguyên âm nhất trong chuỗi

// test_chuoi.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream>
#include<math.h>
#include<conio.h>
#include<string.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
	char s[100];
	int len;
	do
	{
		len = strlen(s);
		cout << " nhap chuoi ki tu : ";
		cin.getline(s, 50);
		cout << " chuoi vua nhap ";
		cout << "*" << s << "*" << endl;
		// viet chuong trinh tai day 
		// tìm từ chứa nhiều nguyên âm nhất 
		int kt = 0;
		int maxna = 0;
		char b[100];
		int nb = 0;
		char c[100];
		for (int i = 0; i < len; i++) // kiểm tra xem có chữ số nguyên âm trong chuỗi không 
		{
			int t = toupper(s[i]);
			{
				if (t == 'A' || t == 'O' || t == 'U' || t == 'E' || t == 'I' || t == 'Y')
				{
					kt++;
				}
			}
		}
		if (kt == 0)cout << " mang khong co chu so nguyen am " << endl;
		else
		{
			for (int i = 0; i < len; i++)
			{
				int tang = 0;
				if (s[i] != 32 && s[i] != NULL)
				{
					b[nb++] = s[i];
					int t = toupper(s[i]);
					if (t == 'A' || t == 'O' || t == 'U' || t == 'E' || t == 'I' || t == 'Y')
						tang++;
				}
				else
				{
					b[nb] = NULL;
					if (tang > maxna)
						strcpy_s(c, b);
				}
				nb = 0;
			}
			cout << " tu chua nhieu nguyen am nhat la : " << b << endl;
		}
		cout << " nhan ESC de thoat chuong trinh " << endl;
	} while (_getch() != 27);
	return 0;
}

giúp mình tìm lỗi bài này với , ai có cách hay thì share cho mình lun nha

Nguyễn Việt Nhật viết 21:06 ngày 30/09/2018

Gặp khoảng trống thì reset bộ đếm, lưu vị trí ký tự cuối của từ có nhiều nguyên âm nhất

#include <string>
#include <iostream>

bool isVowel(char &c) {
return (c == 'a' || c == 'A' || c == 'e' || c == 'E' 
	|| c == 'i' || c == 'I' || c == 'o' || c =='O'
	|| c == 'u' || c == 'U');

}

int main() {
std::string s;
std::getline(std::cin, s, '\n');

int end = -1;
int count = 0;
int max = 0;
for (int i = 0; i < s.length(); ++i) {
	if (s[i] == ' ' || i == s.length() - 1) {
		if (isVowel(s[i])) {
			count++;
		}
		if (count > max) {
			end = i;
			max = count;
		}
		count = 0;
	}
	else {
		if (isVowel(s[i])) {
			count++;
		}
	}
}

if (end == -1) {
	std::cout << "ko co";
}
else {
	std::string result = "";
	for (int i = end - 1; i >= 0; --i) {
		if (s[i] == ' ') {
			break;
		}
		result = s[i] + result;
	}
	std::cout << result;
}

return 0;
}
Bài liên quan
0