输入一个字符串,删除其中所有的数字,所有大写字母改成小写,其他不变,并输出。
break是直接跳出循环,continue意思是遇到数字就跳过,后面的语句不执行;
大小写字母转换 -‘A’+’a’ 或者 -‘a’+’A’;
输入一个字符串,输出其出现次数最多的数字,如果有两个数字出现次数相同,则输出较小的那一个
给整形数组赋0值,频率统计数组
字符转换成数字要 -‘0’,数字转换成字符要 +’0’;
break保证了只输出一个满足要求的结果;
输入一个字符串,统计其出现频率最高的字符,并输出。若存在两个字符出现频率相同,则输出字典序较小的那一个。
int m;char str[i];m=str[i]字符转换为ASCII.直接赋值就行了。
输入一个数字,输出其各个位上的和
</pre><p><span style="background:yellow;">方法</span><span style="background:yellow;">1</span><span style="background:yellow;">:</span>整数拆分,不断的除以10将余数提取出来。</p><p align="left"><span style="color:blue;">while</span>(n!=0)<span style="background:yellow;">////////////</span><span style="background:yellow;">循环结束的标志</span></p><p align="left">{</p><p align="left"> sum+ = n%10;</p><p align="left"> n = n/10;</p><p>}</p><p><span style="background:yellow;">方法</span><span style="background:yellow;">2</span><span style="background:yellow;">:</span>整数拆分,直接用字符串读入,把每一位用字符形式提取出来。</p><p align="left"><span style="background:yellow;">///////////vs2008</span><span style="background:yellow;">中</span><span style="background:yellow;">int</span><span style="background:yellow;">占</span><span style="background:yellow;">4</span><span style="background:yellow;">个字节【</span><span style="background:yellow;">sizeof(int)</span><span style="background:yellow;">】,最大值为</span><span style="background:yellow;">4294967296</span><span style="background:yellow;">,定义字符数组长度</span><span style="background:yellow;">11</span></p><p align="left"><span style="color:blue;">for</span> (i=0;i<len;i++)</p><p align="left"> {</p><p align="left"> sum+= (str[i]-<span style="color:#A31515;">'0'</span>);<span style="background:yellow;">////////////</span><span style="background:yellow;">注意</span><span style="background:yellow;">+</span><span style="background:yellow;">和</span><span style="background:yellow;">=</span><span style="background:yellow;">中间不要有空格,否则会报错</span></p><p> }</p><strong>输入一个数字,将其倒序输出,并输出其各个位上的乘积。</strong><p></p><p align="left">将其倒序输出,没有特别强调是按照一个数的格式输出,因此可以有前导0///////////vs2008中int占4个字节,不会溢出(3999999999各位的乘积最大,不溢出)。</p><pre name="code" class="cpp"><p align="left"><span style="color:blue;">#include</span><span style="color:#A31515;"><stdio.h></span></p><p align="left"><span style="color:blue;">#include</span><span style="color:#A31515;"><string.h></span></p><p align="left"><span style="color:blue;">int</span> main()</p><p align="left">{</p><p align="left"> <span style="color:blue;">char</span>str[11];</p><p align="left"> scanf(<span style="color:#A31515;">"%s"</span>,str);</p><p align="left"> <span style="color:blue;">int</span>i,len,product=1;</p><p align="left"> len = strlen(str);</p><p align="left"> <span style="color:blue;">for</span>(i=len-1;i>=0;i--)</p><p align="left"> {</p><p align="left"> printf(<span style="color:#A31515;">"%c"</span>,str[i]);</p><p align="left"> product*= (str[i]-<span style="color:#A31515;">'0'</span>);</p><p align="left"> }</p><p align="left"> printf(<span style="color:#A31515;">" "</span>);<span style="background:yellow;">////////////////</span><span style="background:yellow;">输出空格</span></p><p align="left"> printf(<span style="color:#A31515;">"%d"</span>,product);</p><p align="left"><span style="color:blue;">return </span>0;</p><p>}</p>
输入10个数字,按从大到小的顺序排序
排序算法:选择排序、冒泡排序、统计排序、归并排序、快速排序、堆排序……
冒泡排序:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比较的顺序从前往后,经过一趟比较后,将最值沉底(换到最后一个元素位置),最大值沉底为升序,最小值沉底为降序。
<p align="left"><span style="color:red;">for(i=0;i<9;i++)</span><span style="background:yellow;">///////////</span><span style="background:yellow;">进行</span><span style="background:yellow;">9</span><span style="background:yellow;">次循环,实现</span><span style="background:yellow;">9</span><span style="background:yellow;">趟比较,即</span><span style="background:yellow;">n-1</span></p><p align="left"><span style="color:red;"> {</span></p><p align="left"><span style="color:red;"> for(j=0;j<9-i;j++)</span><span style="background:yellow;">///////////</span><span style="background:yellow;">每一趟中进行</span><span style="background:yellow;">9-i</span><span style="background:yellow;">次比较,即</span><span style="background:yellow;">n-1-i</span></p><p align="left"> <span style="color:red;">{</span></p><p align="left"><span style="color:red;"> if(num[j]<num[j+1])</span></p><p align="left"><span style="color:red;"> {</span></p><p align="left"><span style="color:red;"> t= num[j+1];</span></p><p align="left"><span style="color:red;"> num[j+1]= num[j];</span></p><p align="left"><span style="color:red;"> num[j]=t;</span></p><p align="left"><span style="color:red;"> }</span></p><p align="left"><span style="color:red;"> }</span></p><p align="left"><span style="color:red;"> }</span></p>
选择排序:
算法1:每趟选出一个最值和无序序列的第一个数交换,n个数共选n-1趟。第i趟假设i为最值下标,然后将最值和i+1至最后一个数比较,找出最值的下标,若最值下标不为初设值,则将最值元素和下标为i的元素交换。
<p align="left"><span style="color:#CB1DC3;">int k;</span></p><p align="left"><span style="color:#CB1DC3;">for(i=0;i<9;i++)</span></p><p align="left"><span style="color:#CB1DC3;"> {</span></p><p align="left"><span style="color:#CB1DC3;"> k = i;</span></p><p align="left"><span style="color:#CB1DC3;"> for(j=i+1;j<10;j++)</span></p><p align="left"><span style="color:#CB1DC3;"> {</span></p><p align="left"><span style="color:#CB1DC3;"> if(num[j]<num[k])</span></p><p align="left"><span style="color:#CB1DC3;"> {</span></p><p align="left"><span style="color:#CB1DC3;"> k= j;</span></p><p align="left"><span style="color:#CB1DC3;"> }</span></p><p align="left"><span style="color:#CB1DC3;"> }</span></p><p align="left"><span style="color:#CB1DC3;"> if(k!=i)</span></p><p align="left"><span style="color:#CB1DC3;"> {</span></p><p align="left"><span style="color:#CB1DC3;"> t= num[k];</span></p><p align="left"><span style="color:#CB1DC3;"> num[k]= num[i];</span></p><p align="left"><span style="color:#CB1DC3;"> num[i]= t;</span></p><p align="left"><span style="color:#CB1DC3;"> }</span></p><p align="left"><span style="color:#CB1DC3;"> }</span></p>
算法2:首先比较a[1]与a[2]的值,若a[1]大于a[2]则交换两者的值,否则不变。再比较a[1]与a[3]的值,若a[1]大于a[3]则交换两者的值,否则不变。再比较a[1]与a[4],依此类推,最后比较a[1]与a[n]的值。这样处理一轮后,a[1]的值一定是这组数据中最小的。再将a[2]与a[3]~a[n]以相同方法比较一轮,则a[2]的值一定是a[2]~a[n]中最小的。再将a[3]与a[4]~a[n]以相同方法比较一轮,依此类推。
for(i=0;i<9;i++) { for(j=i+1;j<10;j++) { if (num[j]<num[i]) { t = num[i]; num[i] = num[j]; num[j] = t; } } }