C语言编写一个程序,输入一个字符串,内容依次是学号(位数不定,不超过十位)和姓名的汉语拼音码,经处理后,输出一个字符串,内容依次为,姓名,一个空格,学号
时间: 2023-10-09 19:16:15 浏览: 200
以下是一个示例程序,可以实现该功能:
```c
#include <stdio.h>
#include <string.h>
int main() {
char input[20], name[10], student_id[11];
int i, j;
// 读取输入字符串
printf("请输入学号和姓名的拼音码:\n");
scanf("%s", input);
// 找到第一个空格的位置,将其之前的部分作为学号,之后的部分作为姓名
for (i = 0; i < strlen(input); i++) {
if (input[i] == ' ') {
strncpy(student_id, input, i);
student_id[i] = '\0';
strcpy(name, input + i + 1);
break;
}
}
// 输出结果
printf("%s %s\n", name, student_id);
return 0;
}
```
这个程序先读取用户输入的字符串,然后遍历字符串,找到第一个空格的位置,将其之前的部分作为学号,之后的部分作为姓名。最后将姓名和学号按照要求输出。需要注意的是,由于学号的位数不确定,我们需要使用一个长度为 11 的字符数组来存储学号,以保证足够的空间。
相关问题
用c语言编写自己学号后五位数之和
在C语言中,如果你想要计算一个学生学号后五位数字的和,你可以先获取输入的学号字符串,然后提取并转换成整数,最后对这五个数字求和。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
char student_id[10]; // 学号存储数组,假设最大长度为9字符加上结尾空字符
printf("请输入你的学号: ");
fgets(student_id, sizeof(student_id), stdin); // 使用fgets读取用户输入,包括换行符
int sum = 0;
size_t length = strlen(student_id);
// 截取学号后5位,并转为整数
for (size_t i = length - 1; i >= length - 5 && i > 0; i--) {
if (isdigit(student_id[i])) { // 检查是否为数字字符
sum += student_id[i] - '0'; // 减去ASCII码'0'得到数值
}
}
printf("你的学号后五位的和是: %d\n", sum);
return 0;
}
```
在这个程序中,我们首先读入用户的学号字符串,然后从右向左遍历,找到并累加后五位的有效数字。注意,`isdigit()`函数用于检查字符是否为数字。
C语言输入两个学生的学号、姓名和成绩,输出成绩较高的学生的学号、姓名和成绩,成绩保留两位小数
以下是一个简单的 C 语言程序,可以实现输入两个学生的学号、姓名和成绩,并输出成绩较高的学生的学号、姓名和成绩:
```c
#include <stdio.h>
int main() {
// 定义变量
int id1, id2;
float score1, score2;
char name1[20], name2[20];
// 输入第一个学生的信息
printf("请输入第一个学生的学号、姓名和成绩,以空格分隔:");
scanf("%d %s %f", &id1, name1, &score1);
// 输入第二个学生的信息
printf("请输入第二个学生的学号、姓名和成绩,以空格分隔:");
scanf("%d %s %f", &id2, name2, &score2);
// 比较成绩,输出成绩较高的学生的信息
if (score1 > score2) {
printf("%d %s %.2f\n", id1, name1, score1);
} else {
printf("%d %s %.2f\n", id2, name2, score2);
}
return 0;
}
```
在上面的程序中,我们使用了 `scanf()` 函数来输入学生的信息,使用了 `printf()` 函数来输出成绩较高的学生的信息。注意,我们使用了格式化字符串 `%d`、`%s` 和 `%f` 分别来读取整数、字符串和浮点数。另外,我们使用了比较运算符 `>` 来比较两个成绩的大小。最后,我们使用了格式化字符串 `%.2f` 来保留成绩的小数位数。
阅读全文