Cần giúp về bài liệt kê những từ có tận cùng là nguyên âm trong c/c++

>     #include "stdafx.h"
>     #include<iostream>
>     #include<conio.h>
>     #include<math.h>
>     #include<string.h>
>     using namespace std;
>     int _tmain(int argc, _TCHAR* argv[])
>     {
>         do{
>     	        char s[50];
>               int len =strlen(s);
>           	char na[] = "ueoaiyUEOAIY";
>     		char d[50]; // chuoi chua tu nguyen am 
>     		int nd = 0;
>     		char c[50];
>     		int nc = 0;
>     		for (int i = len - 1; i >= 0; i --)
>     		{
>     			if (s[i] != 32 && s[i] != NULL)
>     			{
>     				c[nc++] = s[i];
>     			}
>     			else
>     			{
>     				c[nc] = NULL;
>     				if (strchr(na, c[0]) != NULL)
>     				{
>     					strcpy_s(d, c);
>     				}
>     				nc = 0;
>     			}
>     		}
>     		cout << d << endl;
>     		cout << " nhan ESC de thoat chuong trinh !!!" << endl;
>     	} while (_getch() != 27);
>     	return 0;
>     }
> giúp mình tìm lỗi với , mình thấy hướng làm cũng đúng mà sao không ra .

ai giúp mình với , mình sắp thi rồi mà dạng này cắt các từ ra một chuỗi khác chưa biết làm

biến đó khai bảo ở đâu vậy bạn

code này chắc copy quá vòng lặp do-while mà lại k có keyword:do

mình làm 2 ,3 bài trong đó mà chỉ copy bài đó ra nên thiếu

mình chỉnh lại rùi đó

Bài này nghĩa là cho một chuỗi kí tự rồi liệt kê nhưng từ có tận cùng là kí tự nguyên âm hả ?

đúng rùi bạn :smile:

Mình thấy bạn dùng 1 đống thư viện, mình nhìn thì k hiểu tác dụng của nó trong chương trình này như thế nào. Nhưng ở đây mình thấy bạn có khai báo biến s, rồi sau đó dùng biến s đó tính toán luôn, trong khi chưa có khai báo giá trị của nó thì chương trình chạy thế nào được :smiley:

mình copy thiếu đó bạn , tại mình làm 3 bài trong đây nên lúc copy ra thiếu

Mình không rành cú pháp của C++ nhưng sẽ gợi ý cách làm cho bạn như sau:
Bước 1: Gọi chuỗi cho trước là strInput. Tạo một mảng mới, ví dụ với tên strSeperate. Tách từng từ trong chuỗi ban đầu dựa vào kí tự khoảng trắng (space) và lưu những từ đó vào mảng vừa strSeperate vừa tạo.

Bước 2: Vì đề bài yêu cầu kiểm tra từ có chữ cái tận cùng là nguyên âm => Tạo một hàm kiểm tra xem từ đang kiểm tra có thoả mãn yêu cầu không, nếu có trả hàm về true, ngược lại trả về false.

Bước 3: Tạo môt mảng mới, ví dụ mảng với tên strOutput. Sử dụng Foreach để duyệt qua từng từ trong mảng. Với mỗi vòng lặp, sử dụng hàm đã tạo ở bước 2 kiểm tra từ đang duyệt, nếu thoả mãn yêu cầu thì thêm từ đó vào mảng strOutput.

Gửi bạn đoạn code bằng ngôn ngữ Swift tham khảo.

//: Playground - noun: a place where people can play

import UIKit

var strInput = “Ngay hom qua troi trong xanh, hoa la cung tuoi xanh”
var strSeperate = strInput.componentsSeparatedByString(" ") //tách chuỗi thành mảng gồm nhiều từ dựa vào kí tự khoảng trắng
var strOutput = String

func testNguyenAm (str : String) -> Bool {
let char = str.characters.last! // lấy kí tự cuối cùng của từ
if (char == “u” || char == “o” || char == “e” || char == “i” || char == “a” || char == “y” || char == “U” || char == “O” || char == “E” || char == “I” || char == “A” || char == “Y”) {
return true
}
else {
return false
}
}

for word in strSeperate {
if testNguyenAm(word) {
strOutput.append(word) // thêm từ vào mảng
}
}

//dem so tu bat dau bang 1 nguyen am
// nhap chuoi
#include<stdio.h>
#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
void nhap(char a[]);
void xuat(char a[]);
int dem_na(char a[]);
int main()
{
	char a[50];
	nhap(a);
	cout << "so ki tu nguyen am la:";
	cout << dem_na(a);
}
void nhap(char a[])
{
	cout << "Nhap 1 chuoi ky tu:";
	cin.getline(a, 50);
}
void xuat(char a[])
{
	int n;
	n = strlen(a);
	for (int i = 0; i < n; i++)
		cout << (a[i]);
}
int dem_na(char a[])
{
	int songuyenam = 0;
	char nguyenam[] = "aeiouyAEIOUY";// danh sach nguyen am
	int len = strlen(a);
	for (int i = 0; i < len; i++)// di tung phan tu thu i trong chuoi
	{
		if (a[i] != 32 && a[i - 1] == 32)
		{
			if (strchr(nguyenam, a[i]) != NULL)// tim phan tu thu i trong day nguyen am
				songuyenam++;
		}
	}
	return songuyenam;

}````
mình có code đếm các từ bắt đầu bằng 1 nguyên âm
bạn chỉnh lại len cho nó chạy từ cuối lên đầu xem
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?