Máy tính, Internet > Lập trình > Lập trình - Khác

Cần giúp đỡ về bài tập lập trình C ?

Chào các bạn mình có một số bài tập về lập trình C của thầy giao cuối tuần nộp các bạn có thể trợ giúp mình được không ? Đây là đề bài tập nè . Viet chuong trinh thuc hien 1/Nhập vào chuỗi ký tự bất kỳ.Xuất ra chuỗi ký tự đảo của chuỗi đã nhập. VD : Nhập: Nguyen Van Bao Xuất : oaB naV neyugN 2/ Nhập vào chuỗi ký tự bất kỳ.Xuất ra chuỗi ký tự với các từ được đảo ngược vị trí VD : Nhập : Nguyen Van Bao Xuất : Bao Van Nguyen 3/ Nhập vào chuỗi ký tự bất kỳ a/ Đếm xem trong chuỗi có bao nhiêu ký tự b/ Đếm số chữ cái có trong chuỗi c/ Đếm số chữ số có trong chuỗi d/Đếm xem có bao nhiêu từ trong chuỗi e/ Tìm và thay thế các chữ cái đầu của mỗi từ bằng chữ in Hoa tương ứng f/ Đếm xem có bao nhiêu ký tự được lặp lại g/ Liệt kê tất cả các ký tự trong chuỗi theo thứ tự a đến z cùng với số lượng lặp lại trong chuỗi. 4/ Nhập vào 1 dòng chữ. a/ Kiểm tra xem có ký tự nào in Hoa mà không nằm ở vị trí đầu từ thì chuyển thành chữ thường. VD : KhOa diEN tU VieN thoNg Khoa Dien Tu Vien Thong b/ Viết chương trình cho dòng chữ chạy từ trái sang phải rồi chạy ngược lại.
Phố mùa đông
1. #include <stdio.h> #include <string.h> int main() { char str[] = "nguyen van bao"; int i = strlen(str) - 1; for (; i >= 0; i--) { if (str[i] == ' ') { printf("%s ",str + i + 1); str[i] = '\0'; } if (i == 0) { printf("%s",str); } } printf("\n"); return 0; } 3 a. #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <string.h> int _tmain(int argc, _TCHAR* argv[]) { char *str; str = new char[1024]; printf ("Input string: "); gets(str); flushall(); int length = strlen(str); char *temp = new char[length + 1]; strcpy(temp, str); int k = 0; int l = 0; int a[256]; char b[256]; memset(a, 0, 256); for (int i=0; i<length-1; i++) { char c = temp[i]; if (c != NULL) { int dem = 1; for (int j=i+1; j<length; j++) { if (c == temp[j]) { dem ++; temp[j] = NULL; } } a[k++] = dem; b[l++] = c; } } printf ("\n\n"); for (int i=0; i<k; i++) printf ("%c - %d\t", b[i], a[i]); getch(); return 0; } g. Cái này là demo về thuật toán, với giả thiết rằng str[0] chỉ là kí tự a..z A..Z. Nếu muốn chình xác hơn phải cải tiến thuật toán. #include <stdio.h> #include <string.h> int main() { char str[] = "nguyen van long"; int i = 0; str[0] = str[0] - 32; for (i = 0; i < strlen(str); i++) { if (str[i] == ' ') { str[i+1] = str[i+1] - 32; } } printf("%s\n",str); return 0; } 4b. #include <stdio.h> #include <string.h> int main() { char* str = "nguyen van long"; bool check = true; int i = 0; for (; i < strlen(str) && check == true; i++) { if (str[i] != ' ') { printf("%c",str[i]); } else { printf("\n"); str = str + i + 1; check = false; } } printf("%s",str); printf("\n"); return 0; }
vào đây mà xem.có nhìu code xâu ký tự nè: http://cnx.org/content/m17596/latest/
To Van Nam
Một cách cơ bản hơn bạn nên tham khảo các cuốn sau của Nhà Xuất bản Giáo dục: - Tin học đại cương _ Bài tập Tin học Đại cương Hai cuốn này do các thày ở Khoa CNTT Đại học BK (bay giờ gọi là Viện CNTT và TT) Hà nội viết Sách vừa xuất bản cuối năm 2009 > Bạn có thể tim mua tại: - Hà nội: 25 Hàn thuyên, 187 Giảng võ, 232 Tây sơn, 23 Tràng tiền,... - Đà nẵng: 15 Nguyễn Chí thanh, 62 15 Nguyễn Chí thanh - TP Hồ Chí Minh 451B - 453 HBT Quận 3, 240 Trần Bình Trọn Quận 5 - Cần Thơ 5/5 Dường 30/4 Chúc bạn học C có kết quả
kem14292

bài trả lời của phomuado còn bị lỗi đó

kem14292

Mấy bài này dùng vòng lặp for là ok. Lưu ý nên dùng fflush(stdin) và gets() thay cho scanf...

phạm văn phúc

Trích dẫn:
Từ bài viết của phomuadong
1.
#include <stdio.h>
#include <string.h>

int main()
{
char str[] = "nguyen van bao";
int i = strlen(str) - 1;

for (; i >= 0; i--) {
if (str == ' ') {
printf("%s ",str + i + 1);
str = '';
}
if (i == 0) {
printf("%s",str);
}
}

printf(" ");
return 0;
}

3
a. #include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>

int _tmain(int argc, _TCHAR* argv[])
{
char *str;
str = new char[1024];
printf ("Input string: ");
gets(str);
flushall();
int length = strlen(str);
char *temp = new char[length + 1];
strcpy(temp, str);
int k = 0;
int l = 0;
int a[256];
char b[256];
memset(a, 0, 256);
for (int i=0; i<length-1; i++)
{
char c = temp;
if (c != NULL)
{
int dem = 1;
for (int j=i+1; j<length; j++)
{
if (c == temp[j])
{
dem ++;
temp[j] = NULL;
}
}
a[k++] = dem;
b[l++] = c;
}
}
printf (" ");
for (int i=0; i<k; i++)
printf ("%c - %d ", b, a);
getch();
return 0;
}

g. Cái này là demo về thuật toán, với giả thiết rằng str[0] chỉ là kí tự a..z A..Z. Nếu muốn chình xác hơn phải cải tiến thuật toán.

#include <stdio.h>
#include <string.h>

int main()
{
char str[] = "nguyen van long";
int i = 0;

str[0] = str[0] - 32;
for (i = 0; i < strlen(str); i++) {
if (str == ' ') {
str[i+1] = str[i+1] - 32;
}
}
printf("%s ",str);

return 0;
}

4b. #include <stdio.h>
#include <string.h>

int main()
{
char* str = "nguyen van long";
bool check = true;
int i = 0;

for (; i < strlen(str) && check == true; i++) {
if (str != ' ') {
printf("%c",str);
} else {
printf(" ");
str = str + i + 1;
check = false;
}
}
printf("%s",str);
printf(" ");

return 0;
}


bạn ơi làm hộ mình bài này nữa được không

viết chương trình nhập và suất ra 1 mảng các số nguyên. tìm vị trí số nguyên tố đầu tiên suất hiện trong mảng. nếu không có số nguyên tố nào thì in ra giá trị 1

Hỏi đáp đề xuất

Lập trình - Khác

Em đang học lập trình C/C++}

pcmax 17 năm
Bạn tìm cuốn Lập trình C/C++ của thầy Phạm Văn Ất đấy. Cuốn đấy đầy đủ và cũng dễ học Xem thêm
Lập trình - Khác

Lập trình trong C# 2005 có khác VS C++ không?}

loc minh tung 17 năm
có khác nhau về cách dùng câu lệnh. và trong C# 2005 tích hợp nhiều ngôn ngữ khác ví dụ như: ASP.NET, C.net ... Xem thêm
Lập trình - Khác

Cho em hỏi về lập trình c tý hem}

15 năm
muốn dùng hàm getch() thì phải khai báo thư viện #include<conio.h> thì mới dùng được chứ. ok
Lập trình - Khác

Giúp em về bài lập trình Pascal. Các anh chị pro chỉ giúp em với.}

To Van Nam 15 năm
Em tham khảo cuốn Bài tập Tin Đại cương(TURBO PASCAL) của tác giả Tô Văn Nam, NXB Giáo dục; Em có thể mua ở... Xem thêm