else {
count=1; }
if (count>max) {
max = count; *tag = i; } }
return max; }
int main() {
char inStr[80]; int tag=0; int max =0 ;
printf(\ gets(inStr);
max = CountRepeatStr(inStr,&tag); printf(\ return 0; }
第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 rtn=0;
int i=0,j=0,k=0; int num[8];
while(str[i]!='\\0') {
if (str[i]>='0'&&str[i]<='9') {
num[j] = str[i]-48; j++; } i++; }
int b = 1;
for( k = j-1; k>=0; k--) {
rtn += b * num[k]; b *= 10; }
return rtn; }
int main() {
char inStr[8]; int rtn =0 ;
printf(\
gets(inStr);
rtn = Myatoi(inStr); printf(\ return 0; }
2奇偶数分离(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 main() {
void Seperate(int a[], int n,int js[],int os[],int *jsLength,int *osLength); int nums,i,j,k;int array[100]={0}; int js[100]={9999},os[100]={9999}; printf(\ scanf(\ printf(\
for(i=0;i scanf(\ } int jsLength=0,osLength=0; Seperate(array,nums,js,os,&jsLength,&osLength); int fNum = 1; //输出奇数 if (jsLength > 0) { for(j=0;j if (fNum == 1) { printf(\ fNum = 2; } else { printf(\ } } printf(\ } //输出偶数 fNum = 1; if (osLength > 0) { for(k=0;k if (fNum == 1) { printf(\ fNum = 2; } else { printf(\ } } } return 0; } void Seperate(int a[],int n,int js[],int os[],int *jsLength,int *osLength) { int j,m=0,k=0; for(j=0;j if(a[j]%2!=0) { //??êy js[m] =a[j]; m++; } else { os[k] =a[j]; k++; } *jsLength = m; *osLength = k; } } 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! 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库中国大学C语言程序题(8)在线全文阅读。
相关推荐: