写一下C语言程序: 删除重复字符 回文数判断 单词统计 合法C标识符 奖学金 密码翻译
时间: 2024-03-23 17:37:26 浏览: 67
好的,我会为你提供这些问题的C语言程序实现。
1. 删除重复字符
```c
#include <stdio.h>
#include <string.h>
void remove_duplicate_chars(char str[]) {
int len = strlen(str);
int i, j, k;
for (i = 0; i < len; i++) {
for (j = i + 1; j < len; j++) {
if (str[j] == str[i]) {
for (k = j; k < len; k++) {
str[k] = str[k + 1];
}
len--;
j--;
}
}
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
gets(str);
remove_duplicate_chars(str);
printf("删除重复字符后的字符串为:%s\n", str);
return 0;
}
```
2. 回文数判断
```c
#include <stdio.h>
#include <string.h>
int is_palindrome(int num) {
char str[10];
sprintf(str, "%d", num);
int len = strlen(str);
int i;
for (i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
return 0;
}
}
return 1;
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (is_palindrome(num)) {
printf("%d是回文数\n", num);
} else {
printf("%d不是回文数\n", num);
}
return 0;
}
```
3. 单词统计
```c
#include <stdio.h>
#include <string.h>
int count_words(char str[]) {
int len = strlen(str);
int i, count = 0;
for (i = 0; i < len; i++) {
if (str[i] == ' ' || str[i] == '\n' || str[i] == '\t') {
count++;
}
}
return count + 1;
}
int main() {
char str[1000];
printf("请输入一段文本:\n");
fgets(str, sizeof(str), stdin);
int count = count_words(str);
printf("单词数为:%d\n", count);
return 0;
}
```
4. 合法C标识符
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int is_valid_identifier(char str[]) {
int len = strlen(str);
int i;
if (!isalpha(str[0]) && str[0] != '_') {
return 0;
}
for (i = 1; i < len; i++) {
if (!isalnum(str[i]) && str[i] != '_') {
return 0;
}
}
return 1;
}
int main() {
char str[100];
printf("请输入一个标识符:");
scanf("%s", str);
if (is_valid_identifier(str)) {
printf("%s是合法的C标识符\n", str);
} else {
printf("%s不是合法的C标识符\n", str);
}
return 0;
}
```
5. 奖学金
```c
#include <stdio.h>
int main() {
int n, i;
double score, sum = 0, max = 0;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%lf", &score);
sum += score;
if (score > max) {
max = score;
}
}
double avg = sum / n;
if (avg >= 80 && max >= 90) {
printf("奖励1000元\n");
} else if (avg >= 80) {
printf("奖励800元\n");
} else if (avg >= 60) {
printf("奖励500元\n");
} else {
printf("很遗憾,没有奖励\n");
}
return 0;
}
```
6. 密码翻译
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char str[100];
printf("请输入需要翻译的字符串:");
fgets(str, sizeof(str), stdin);
int len = strlen(str);
int i;
for (i = 0; i < len; i++) {
if (isalpha(str[i])) {
if (isupper(str[i])) {
str[i] = 'A' + ('Z' - str[i]);
} else {
str[i] = 'a' + ('z' - str[i]);
}
}
}
printf("翻译后的字符串为:%s\n", str);
return 0;
}
```
希望这些程序能够帮助到你,如果有任何问题欢迎提出。
阅读全文