}
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
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
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
//逆转字符串
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);
)