输入格式: \
每行第一个数据的输出格式:\每行第二个及以后数据的输出格式:\#include
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
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')