哈工大 C语言程序设计精髓 MOOC慕课 6-12周编程题答案

输入格式: \

每行第一个数据的输出格式:\每行第二个及以后数据的输出格式:\#include #include int main() {

int n, i, j, k, o, e; printf(\scanf(\printf(\

char s[n], odd[n], even[n]; for (i = 0, j = 0, k = 0; i < n; i++) {

scanf(\

if (s[i] % 2 == 0) //even {

even[k++] = s[i]; e = k; } else {

odd[j++] = s[i]; o = j; } }

even[e] = '\\0'; odd[o] = '\\0'; for (i = 0; i < o; i++) {

if (i == 0) { printf(\ } else { printf(\ } }

printf(\ for (i = 0; i < e; i++) {

if (i == 0) {

printf(\ } else { printf(\ } } return 0; }\

10.3 \/*从键盘输入一个句子(假设字符数小于100个),句子中的单词之间用空格分隔,句子必须以一个标点符号作为结尾,句子开头和末尾标点符号前均没有空格,以回车表示输入结束,请编程颠倒句中的单词顺序并输出。 函数原型:int Inverse(char str1[], char str2[][N])

函数功能:将str1中的单词颠倒顺序后分别存入str2的每一行,返回str1中的单词数。 程序运行结果示例1:

Input a sentence:you can cage a swallow can't you?↙ you can't swallow a cage can you?

程序运行结果示例2:

Input a string:you are my sunshine!↙ sunshine my are you!

程序运行结果示例3: Input a sentence:I love you!↙ you love I!

输入提示信息:\输入格式: 用gets()函数 输出格式:

每个单词的输出格式:\ (注意: %s后面有一个空格) 最后一个单词和标点符号的输出格式:\#include #include //逆转字符串

char* Reverse(char *str, int len) {

if (str == NULL || len <= 0) {

return str; }

char *pLast = str + len - 1; char *pBegin = str; while (pBegin < pLast) {

char temp = *pBegin; *pBegin = *pLast; *pLast = temp; ++ pBegin; -- pLast; } return str; }

//逆转句子

char * ReverseSentence(char *str) {

if (str == NULL) {

return str; }

//逆转整个句子 Reverse(str, strlen(str)); //逆转各个单词 char *pBegin = str; char *pEnd = str; while (*pEnd != '\\0')

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4