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
Phố mùa đông
Trả lời 14 năm trước
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; }
Trả lời 14 năm trước
vào đây mà xem.có nhìu code xâu ký tự nè: http://cnx.org/content/m17596/latest/
To Van Nam
To Van Nam
Trả lời 14 năm trước
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
kem14292
Trả lời 12 năm trước

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

kem14292
kem14292
Trả lời 12 năm trước

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
phạm văn phúc
Trả lời 11 năm trướ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