中国大学MOOC-哈工大-C语言程序设计精髓第六-十二周编程题答案(5)

2018-12-21 12:01

}

else {

if (t>tl){ tl=t; num=i; } } }

printf(\, a[num],tl);

10.1

数字字符串转换为整型数(4分)

题目内容:

从键盘输入一串字符(假设字符数少于8个),以回车表示输入结束,编程将其中的数字部分转换为整型数并以整型的形式输出。

函数原型为 int Myatoi(char str[]);

其中,形参数组str[]对应用户输入的字符串,函数返回值为转换后的整型数。

解题思路的关键是:1)判断字符串中的字符是否是数字字符;2)如何将数字字符转换为其对应的数字值;3)如何将每一个转换后的数字值加起来形成一个整型数。 程序运行结果示例1: Input a string:7hg09y↙ 709

程序运行结果示例2: Input a string:9w2k7m0↙ 9270

程序运行结果示例3:

Input a string:happy↙ 0

输入提示信息:\输入格式: \输出格式:\

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!

#include #include #include

int Myatoi(char str[]){ int i,j;

for (i=0,j=0;str[i]!='\\0';i++){

if (str[i] >='0'&& str[i]<='9'){ str[j]=str[i]; j++; } }

str[j]='\\0';

return atoi(str); }

int main() {

char s[7];

printf(\); scanf(\, s);

printf(\, Myatoi(s)); printf(\); return 0; }

奇偶数分离(4分)

题目内容:

输入n个整数(n从键盘输入,假设n的值不超过100),按奇偶数分成两组并输出。输出两行,第一行为所有奇数,第二行为所有偶数,保持数据的相对顺序与输入顺序相同。

函数原型如下所示:

void Seperate(int a[], int n); //数组a[]存放用户输入的n个整数

解题思路:用两个循环分别输出奇数和偶数,在输出第一个数时用\格式字符,在输出其余数时用\格式字符,用标志变量记录和判断是否是第一个奇数或偶数。 程序运行结果示例1: Input n:7↙

Input numbers:5 9 47 82 0 6 7↙ 5,9,47,7 82,0,6

程序运行结果示例2:

Input n:8↙

Input numbers:-2 3 5 0 23 62 79 83↙ 3,5,23,79,83 -2,0,62

输入提示信息:\

\输入格式: \

每行第一个数据的输出格式:\

每行第二个及以后数据的输出格式:\

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!

#include #include int main() {

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

printf(\); char s[n], odd[n], even[n];

for (i = 0, j = 0, k = 0; i < n; i++) {

scanf(\, &s[i]);

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(\, odd[i]); } else {

printf(\, odd[i]); } }

printf(\);

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

if (i == 0) {

}

printf(\, even[i]); } else {

printf(\, even[i]); } }

return 0;

10.3

颠倒句子中的单词顺序(4分)

题目内容:

从键盘输入一个句子(假设字符数小于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') {

while (*pEnd != '\\0'&& *pEnd != ' ' {

++pEnd; } //逆转单词

Reverse(pBegin, pEnd - pBegin);

)


中国大学MOOC-哈工大-C语言程序设计精髓第六-十二周编程题答案(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:桑树病虫害后期防治

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: