编程论坛
400万+工程师在用
华为|鸿蒙开发者日
直播报名
400万+工程师在用
华为|鸿蒙开发者日
直播报名

电子发烧友网工程师

17年用户 16436经验值
擅长:可编程逻辑 MEMS/传感技术 测量仪表 模拟技术 控制/MCU RF/无线
私信 关注

经典c程序100例(31-40)

2008-10-14 13:07

<p><font face="Verdana"><font face="Verdana">经典c程序100例(31-40)</font><br/></font></p>
<p><font face="Verdana"><span class="STYLE23"><strong><span class="STYLE13">【程序31】</span><br/>题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续<br/>    判断第二个字母。</strong><br/>1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或IF语句判断第二个字母。<br/>2.程序源代码:<br/>#include "stdio.h"<br/>#include "conio.h"<br/>void main()<br/>{<br/>char letter;<br/>printf("please input the first letter of someday\n");<br/>while((letter=getch())!='Y')/*当所按字母为Y时才结束*/<br/>{<br/>switch (letter)<br/>{<br/>case 'S':printf("please input second letter\n");<br/>if((letter=getch())=='a')<br/>printf("saturday\n");<br/>else if ((letter=getch())=='u')<br/>printf("sunday\n");<br/>else printf("data error\n");<br/>break;<br/>case 'F':printf("friday\n");break;<br/>case 'M':printf("monday\n");break;<br/>case 'T':printf("please input second letter\n");<br/>if((letter=getch())=='u')<br/>printf("tuesday\n");<br/>else if ((letter=getch())=='h')<br/>printf("thursday\n");<br/>else printf("data error\n");<br/>break;<br/>case 'W':printf("wednesday\n");break;<br/>default: printf("data error\n");<br/>}<br/>}<br/>getch();<br/>}<br/><span class="STYLE13">==============================================================<br/><strong>【程序32】</strong></span><br/><strong>题目:Press any key to change color, do you want to try it. Please hurry up!</strong><br/>1.程序分析:            <br/>2.程序源代码:<br/>#include "conio.h"<br/>#include "stdio.h"<br/>void main(void)<br/>{<br/>int color;<br/>for (color = 0; color &lt; 8; color++)<br/>{ <br/>textbackground(color);/*设置文本的背景颜色*/<br/>cprintf("This is color %d\r\n", color);<br/>cprintf("Press any key to continue\r\n");<br/>getch();/*输入字符看不见*/<br/>}<br/>}<br/><span class="STYLE13">==============================================================<br/><strong>【程序33】</strong></span><br/><strong>题目:学习gotoxy()与clrscr()函数  </strong> <br/>1.程序分析:<br/>2.程序源代码:<br/>#include "conio.h"<br/>#include "stdio.h"<br/>void main(void)<br/>{<br/>clrscr();/*清屏函数*/<br/>textbackground(2);<br/>gotoxy(1, 5);/*定位函数*/<br/>cprintf("Output at row 5 column 1\n");<br/>textbackground(3);<br/>gotoxy(20, 10);<br/>cprintf("Output at row 10 column 20\n");<br/>getch();<br/>}<br/><span class="STYLE13">==============================================================<br/>【程序34】</span><br/><strong>题目:练习函数调用</strong><br/>1. 程序分析: <br/>2.程序源代码:<br/>#include "stdio.h"<br/>#include "conio.h"<br/>void hello_world(void)<br/>{<br/>printf("Hello, world!\n");<br/>}<br/>void three_hellos(void)<br/>{<br/>int counter;<br/>for (counter = 1; counter &lt;= 3; counter++)<br/>hello_world();/*调用此函数*/<br/>}<br/>void main(void)<br/>{<br/>three_hellos();/*调用此函数*/<br/>getch();<br/>}<br/><span class="STYLE13">==============================================================<br/>【<strong>程序35】</strong></span><br/><strong>题目:文本颜色设置</strong><br/>1.程序分析:<br/>2.程序源代码:<br/>#include "stdio.h"<br/>#include "conio.h"<br/>void main(void)<br/>{<br/>int color;<br/>for (color = 1; color &lt; 16; color++)<br/>{<br/>textcolor(color);/*设置文本颜色*/<br/>cprintf("This is color %d\r\n", color);<br/>}<br/>textcolor(128 + 15);<br/>cprintf("This is blinking\r\n");<br/>getch();<br/>}</span><br/></font><font face="Verdana"></p>
<p class="STYLE23"><strong><span class="STYLE13">【程序36】</span><br/>题目:求100之内的素数 </strong>  <br/>1.程序分析:<br/>2.程序源代码:<br/>#include "stdio.h"<br/>#include "math.h"<br/>#define N 101<br/>main()<br/>{<br/>int i,j,line,a[N];<br/>for(i=2;i&lt;N;i++) a=i;<br/>for(i=2;i&lt;sqrt(N);i++)<br/>for(j=i+1;j&lt;N;j++)<br/>{<br/>if(a!=0&amp;&amp;a[j]!=0)<br/>if(a[j]%a==0)<br/>a[j]=0;<br/>}<br/>printf("\n");<br/>for(i=2,line=0;i&lt;N;i++)<br/>{<br/>if(a!=0)<br/>{<br/>printf("%5d",a);<br/>line++;<br/>}<br/>if(line==10)<br/>{<br/>printf("\n");<br/>line=0;<br/>}<br/>}<br/>getch();<br/>}<br/><span class="STYLE13">==============================================================<br/><strong>【程序37】</strong></span><br/><strong>题目:对10个数进行排序</strong><br/>1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,<br/>      下次类推,即用第二个元素与后8个进行比较,并进行交换。        <br/>2.程序源代码:<br/>#include "stdio.h"<br/>#include "conio.h"<br/>#define N 10<br/>main()<br/>{<br/>int i,j,min,tem,a[N];<br/>/*input data*/<br/>printf("please input ten num:\n");<br/>for(i=0;i&lt;N;i++)<br/>{<br/>printf("a[%d]=",i);<br/>scanf("%d",&amp;a);<br/>}<br/>printf("\n");<br/>for(i=0;i&lt;N;i++)<br/>printf("%5d",a);<br/>printf("\n");<br/>/*sort ten num*/<br/>for(i=0;i&lt;N-1;i++)<br/>{<br/>min=i;<br/>for(j=i+1;j&lt;N;j++)<br/>if(a[min]&gt;a[j])<br/>min=j;<br/>tem=a;<br/>a=a[min];<br/>a[min]=tem;<br/>}<br/>/*output data*/<br/>printf("After sorted \n");<br/>for(i=0;i&lt;N;i++)<br/>printf("%5d",a);<br/>getch();<br/>}<br/><span class="STYLE13">==============================================================<br/><strong>【程序38】</strong></span><br/><strong>题目:求一个3*3矩阵对角线元素之和 </strong><br/>1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。<br/>2.程序源代码:<br/>#include "stdio.h"<br/>#include "conio.h"</p>
<p class="STYLE23">/* 如果使用的是TC系列编译器则可能需要添加下句 */<br/>static void dummyfloat(float *x){ float y; dummyfloat(&amp;y);}</p>
<p class="STYLE23">main()<br/>{<br/>float a[3][3],sum=0;<br/>int i,j;<br/>printf("please input rectangle element:\n");<br/>for(i=0;i&lt;3;i++)<br/>for(j=0;j&lt;3;j++)<br/>scanf("%f",&amp;a[j]);<br/>for(i=0;i&lt;3;i++)<br/>sum=sum+a;<br/>printf("duijiaoxian he is %6.2f",sum);<br/>getch();<br/>}<br/><span class="STYLE13">==============================================================<br/><strong>【程序39】</strong></span><br/><strong>题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。<br/>1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后<br/>     此元素之后的数,依次后移一个位置。 </strong><br/>2.程序源代码:<br/>#include "stdio.h"<br/>#include "conio.h"<br/>main()<br/>{<br/>int a[11]={1,4,6,9,13,16,19,28,40,100};<br/>int temp1,temp2,number,end,i,j;<br/>printf("original array is:\n");<br/>for(i=0;i&lt;10;i++)<br/>printf("%5d",a);<br/>printf("\n");<br/>printf("insert a new number:");<br/>scanf("%d",&amp;number);<br/>end=a[9];<br/>if(number&gt;end)<br/>a[10]=number;<br/>else<br/>{<br/>for(i=0;i&lt;10;i++)<br/>{<br/>if(a&gt;number)<br/>{<br/>temp1=a;<br/>a=number;<br/>for(j=i+1;j&lt;11;j++)<br/>{<br/>temp2=a[j];<br/>a[j]=temp1;<br/>temp1=temp2;<br/>}<br/>break;<br/>}<br/>}<br/>}<br/>for(i=0;i&lt;11;i++)<br/>printf("%6d",a);<br/>getch();<br/>}<br/><span class="STYLE13">==============================================================<br/><strong>【程序40】</strong></span><br/><strong>题目:将一个数组逆序输出。</strong><br/>1.程序分析:用第一个与最后一个交换。<br/>2.程序源代码:<br/>#include "stdio.h"<br/>#include "conio.h"<br/>#define N 5<br/>main()<br/>{<br/>int a[N]={9,6,5,4,1},i,temp;<br/>printf("\n original array:\n");<br/>for(i=0;i&lt;N;i++)<br/>printf("%4d",a);<br/>for(i=0;i&lt;N/2;i++)<br/>{<br/>temp=a;<br/>a=a[N-i-1];<br/>a[N-i-1]=temp;<br/>}<br/>printf("\n sorted array:\n");<br/>for(i=0;i&lt;N;i++)<br/>printf("%4d",a);<br/>getch();<br/>}</p></font>

更多回帖

打开APP