土特产 网站源码,wordpress 后台路径修改,dede手机网站模板制作,alexa的网站排名主要分为哪两种一.币值转换
输入一个整数#xff08;位数不超过9位#xff09;代表一个人民币值#xff08;单位为元#xff09;#xff0c;请转换成财务要求的大写中文格式。如23108元#xff0c;转换后变成“贰万叁仟壹百零捌”元。为了简化输出#xff0c;用小写英文字母a-j顺序代…一.币值转换
输入一个整数位数不超过9位代表一个人民币值单位为元请转换成财务要求的大写中文格式。如23108元转换后变成“贰万叁仟壹百零捌”元。为了简化输出用小写英文字母a-j顺序代表大写数字0-9用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。
输入格式
输入在一行中给出一个不超过9位的非负整数。
输出格式
在一行中输出转换后的结果。注意“零”的用法必须符合中文习惯。
输入样例1
813227345输出样例1
iYbQdBcScWhQdBeSf输入样例2
6900输出样例2
gQjB
代码讲解 由题目我们知道我们要将0-9的数转换为字母a-j并用S、B、Q、W、Y分别代表拾、百、仟、万、亿所以我们要先建立两个数组arr数组中存放a-f的字母str数组中存放数字代表的位置由于没有个位所以将个位设为空格S,B,Q,W,S,B,Q,Y,分别代表十百千万十万百万千万亿。由于我们要将各个数进行改变和插入代表的位置所以我们要进行分割数字正因此我们要建立一个数组a用来存放分割出的数字并设立一个计数器计算数字的个数。当然我们输入的数要是为负数就要重新输入并且输入的数为0时直接就可以打印a(a代表数字0但是当我们输入的数不是负数也不是0时就要利用循环将数模上10得到每一个数和总的个数count。得到总的个数后因为数组是从0开始的所以我们先count--得到最大的数组下标之后我们就要进行判断了当数组下标得到的数等于0并且数组下标在4-6之间就要打印W,这是因为当我们的数为808000000时我们应该叫8亿零8百万800000000时为8亿800080000时为8亿零8万所以只有0在count4-6之间才会打印W,当然我们也发现800080000我们会叫8亿零8万而不是8亿0008万0000所我们要建立一个条件当一个数为0时只有往下找到不为0的数时才会打印a,所以我们重新建立一个计算器count1count-1,新的计数器初始下标为原计数器值为0的下一位数的下标当然如果下一位还为0我们就要不停的找直到找到最后所以我们要利用循环在循环中如果找到不为0的数就让它打印a并让原计数器count新计数器count1的值后跳出循环当然当找到最后时count1会等于-1如果是这样就可以直接退出整个循环了。跳出小循环后重新回到大循环中开始打印这次循环的数所对应的字母和所代表的位置当个位有数的时候由于个位并没有所代表的位置所以我们不打印个位的所代表的位置即str[0]不打印。之后再不断的进行循环直到找完为止。 #includestdio.h
int main()
{char arr[10]{a,b,c,d,e,f,g,h,i,j};char str[9]{ ,S,B,Q,W,S,B,Q,Y};int n0;int a[10];int count0;int count10;scanf(%d,n);if(n0){scanf(%d,n);}if(n0){printf(a);}while(n!0){a[count]n%10;n/10;count;}while(count0){count--;if(a[count]0){if(count4 count7){printf(W);}count1count-1;while(count10){if(a[count1]!0){printf(a);countcount1;break;}count1--;}if(count1-1){return 0;}}printf(%c,arr[a[count]]);if(count!0){printf(%c,str[count]);}}return 0;
}
二.约分最简分式
分数可以表示为分子/分母的形式。编写一个程序要求用户输入一个分数然后将其约分为最简分式。最简分式是指分子和分母不具有可以约分的成分了。如6/12可以被约分为1/2。当分子大于分母时不需要表达为整数又分数的形式即11/8还是11/8而当分子分母相等时仍然表达为1/1的分数形式。
输入格式
输入在一行中给出一个分数分子和分母中间以斜杠/分隔如12/34表示34分之12。分子和分母都是正整数不包含0如果不清楚正整数的定义的话。
提示
对于C语言在scanf的格式字符串中加入/让scanf来处理这个斜杠。对于Python语言用a,bmap(int, input().split(/))这样的代码来处理这个斜杠。
输出格式
在一行中输出这个分数对应的最简分式格式与输入的相同即采用分子/分母的形式表示分数。如5/6表示6分之5。
输入样例
66/120输出样例
11/20
代码讲解 这道题其实就是让我们把分子和分母进行约分而让让分子和分母进行约分我们需要得到分子和分母的最大公约数而对于求最大公约数我们有一个很简单的方式辗转相除法我们可以举个例子 18和30的最大公约数 18/300余18 30/181余12 18/121余6 12/62余0 所以最大的公约数为6 这样我们就可以直到两个数的最大公约数就是两个数取余如果余数不为0就将被除数变为原除数除数变为所得余数在进行取余直到余数为0时除数就是我们想要的最大公约数。 所以为了防止数被改变我们要将数赋给两个新的变量 让他们进入循环将两个数得到的余数赋给r并将b1赋给a1,r的值赋给r,直到余数为0时退出循环并让a和b除上b1。 includestdio.h
int main()
{int a,b;scanf(%d/%d,a,b);int r0;int a1a;int b1b;while(ra1%b1){a1b1;b1r;}printf(%d/%d,a/b1,b/b1);return 0;
} 三.单词长度
你的程序要读入一行文本其中以空格分隔为若干个单词以.结束。你要输出每个单词的长度。这里的单词与语言无关可以包括各种符号比如its算一个单词长度为4。注意行中可能出现连续的空格最后的.不计算在内。
输入格式
输入在一行中给出一行文本以.结束
提示用scanf(%c,...);来读入一个字符直到读到.为止。
输出格式
在一行中输出这行文本对应的单词的长度每个长度之间以空格隔开行末没有最后的空格。
输入样例
Its great to see you here.输出样例
4 5 2 3 3 4
代码讲解 根据题目要求我们知道空格和.不计入长度并且以.结束。所以我们可以利用do ...while循环我们需要先进行字符串的输入再进行循环判断在循环中如果我们不等于空格和.我们就让计数器count直到遇到空格和.了并且count也不等于0即第一个数不为空格就打印count当然我们发现输出数的后面要有空格而最后一个数后面没有空格所以我们可以做一个标志flag0,如果fla0,就打印第一个数并改变flag的值第一个数打印之后后面的数就可以用先打印空格再打印数的形式进行输出。 #includestdio.h
int main()
{char a0;int count0,flag0;do{scanf(%c,a);if(a! a!.){count;}else{if(count!0){if(flag0){printf(%d,count);flag1;}else{printf( %d,count);}count0;}}}while(a!.);return 0;
}
四.念数字
输入一个整数输出每个数字对应的拼音。当整数为负数时先输出fu字。十个数字对应的拼音如下
0: ling
1: yi
2: er
3: san
4: si
5: wu
6: liu
7: qi
8: ba
9: jiu输入格式
输入在一行中给出一个整数如1234。
提示整数包括负数、零和正数。
输出格式
在一行中输出这个整数对应的拼音每个数字的拼音之间用空格分开行末没有最后的空格。如yi er san si。
输入样例
-600输出样例
fu liu ling ling
代码讲解 这道题其实很简单其实就是让我们将0-9的数字转换成拼音的形式打印这样其实我们可以将数放入数组再利用 strlen函数求出数组的长度再利用for循环找到每个数并利用switch语句让这些数和符号找到对应的位置并打印拼音注意打印完一个拼音后打印一个空格。 #includestdio.h
#includestring.h
int main()
{char arr[100];scanf(%s,arr);int i0;for(i0;istrlen(arr);i){switch(arr[i]){case -:printf(fu);break;case 0:printf(ling);break; case 1:printf(yi);break; case 2:printf(er);break; case 3:printf(san);break; case 4:printf(si);break;case 5:printf(wu);break;case 6:printf(liu);break;case 7:printf(qi);break;case 8:printf(ba);break;case 9:printf(jiu);break;default:break;}if(i!strlen(arr)-1){printf( );}}return 0;
}
五. 删除字符串中的子串
输入2个字符串S1和S2要求删除字符串S1中出现的所有子串S2即结果字符串中不能包含S2。
输入格式
输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串对应S1和S2。
输出格式
在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。
输入样例
Tomcat is a male ccatat
cat输出样例
Tom is a male
代码讲解 关于这道题我们利用了多个函数(关于这些函数的运用大家可以去看我之前写的字符函数和字符串函数首先我们先创立三个字符串数组str1,str2,str3。str3是用来存放最后要输出的字符串的我们可以用gets函数来获取字符串之后创建一个字符指针p之后利用strstr函数查找字符串并将其赋给p并作为循环条件如果p不为空就将查找到的字符串的首地址加上要查找字符串的长度其实就是跳过要查找的字符串得到要查找字符串之后的字符串并利用strcpy函数将得到的字符串拷贝到str3中然后将查找到的字符串的首地址即p设置为\0即将查找到的字符串和之后的的字符串删除,之后再利用strcat函数将str3的值赋给新的str1,最后输出str1即可。 #includestdio.h
#includestring.h
int main()
{char str1[100]{0};gets(str1);char str2[100]{0};gets(str2);char str3[100]{0};char* p;while((pstrstr(str1,str2))!NULL){strcpy(str3,pstrlen(str2));*p\0;strcat(str1,str3);}puts(str1);return 0;
}