c语言经典案例Word下载.docx
《c语言经典案例Word下载.docx》由会员分享,可在线阅读,更多相关《c语言经典案例Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
}
2、用选择法对10个整数排序。
intnum[10],n,i,j,t,k;
请输入十个整数:
"
for(n=0;
n<
10;
n++)scanf("
%d"
&
num[n]);
9;
{
k=i;
for(j=i+1;
j<
j++)
if(num[k]<
num[j])k=j;
if(k!
=i){t=num[i];
num[i]=num[k];
num[k]=t;
}
从大到小排序为:
n++)printf("
%d"
num[n]);
3、求一个3*3的整型二维数组对角线元素之和。
intnum[3][3],i,j;
输入二维数组:
3;
for(j=0;
scanf("
num[i][j]);
两对角线和分别为%d和%d\n"
num[0][0]+num[1][1]+num[2][2],num[0][2]+num[1][1]+num[2][0]);
5、将一个数组中的值按逆序重新存放。
stdlib.h>
time.h>
intnum[100],n,i,temp;
srand(time(0));
n=rand()%100+1;
生成数组长度为%d\n生成的数组:
n);
n;
i++){num[i]=rand()%100;
printf("
^%-3d"
num[i]);
\n数组逆序存放后排列为:
n/2;
i++){temp=num[i];
num[i]=num[n-1-i];
num[n-1-i]=temp;
i++)printf("
6、输出以下的杨辉三角形(要求输出10行)。
1
11
121
1331
︙︙︙︙
intnum[10][10],i,j;
if(j-1<
0||j==i)num[i][j]=1;
elsenum[i][j]=num[i-1][j-1]+num[i-1][j];
num[i][j]);
if(j==i)break;
7、输出“魔方阵”。
所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。
例如,三阶魔方阵为816
357
492
intn,i,j,k;
输入奇数阶魔方阵的阶数:
n);
k=(5*n-1)/2;
for(i=0;
++i)
(k-i+j)%n*n+(k-i-j-1)%n+1);
9、有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。
如果该数不在数组中,则输出“无此数”。
intnum[15],n,t=0,left,right,middle,key;
数组为\n"
for(n=14;
n>
=0;
n--)t=num[n]=rand()%10+(t+1);
15;
^%-4d"
\n请输入要查找的数:
key);
left=0;
right=14;
while(left<
=right)
middle=(left+right)/2;
if(key==num[middle]){t=-1;
break;
if(key<
num[middle])left=middle+1;
elseright=middle-1;
if(t==-1)printf("
该数是数组中第%d个元素的值\n"
middle+1);
elseprintf("
无此数\n"
11、输出以下图案:
*****
*****
charasterisk[]="
*****"
space[]="
"
;
inta,b;
for(a=0;
a<
5;
a++)
for(b=0;
b<
a;
b++)printf("
%s"
space);
%s\n"
asterisk);
12、有一行电文,已按下面规律译成密码:
第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。
非字母字符不变。
要求编程序将密码译回原文,并输出密码和原文。
ctype.h>
charch,code[100];
intn=0;
请输入密码:
while((ch=getchar())!
='
\n'
)
if(n==0)printf("
密码\n"
%c"
ch);
if(isupper(ch))code[n++]=(26-ch+65+64);
if(islower(ch))code[n++]=(26-ch+97+96);
if(!
isalpha(ch))code[n++]=ch;
code[n]='
\0'
\n原文\n%s\n"
code);
13、编一个程序,将两个字符串连接超来,不要用strcat函数。
string.h>
chara[2][100];
puts("
输入字符串:
gets(a[0]);
gets(a[1]);
inti=0;
while(a[0][i]!
)i++;
strcpy(&
a[0][i],a[1]);
连接后字符串:
puts(a[0]);
14、编一个程序,将两个字符串s1和s2比较,若s1>
s2,输出一个正数;
若s1=s2,输出0;
若s1<
s2,输出一个负数。
不要用strcpy函数。
两个字符串用gets函数读入。
输出的正数或负数的绝对值应是相比较的两个字符串相应字符的ASCII码的差值。
for(inti=0,n=0;
a[0][i]!
&
a[1][i]!
if(a[0][i]!
=a[1][i]){n=a[0][i]-a[1][i];
%d\n"
15、编写一个程序,将字符数组s2中的全部字符复制到字符数组s1中。
不用strcpy函数。
复制时,‘\0’后面的字符不复制。
a[0][0]='
strcat(a[0],a[1]);
复制后字符串:
从1累加到100
#include<
main()
inti,sum=0;
for(i=1;
sum=sum+i;
sum=%d\n"
sum);
}
求1!
+2!
+…+n!
:
#include<
Voidmain()
{doublefac,sum=0;
Inti,n;
fac=1;
i=1;
scanf(“%d”,&
while(i<
=n)
{fac=fac*I;
i++;
sum=sum+fac;
printf(“%lf”,sum);
求1-3+5-7+。
。
+101的值
math.h>
{inta,I,j,sum=0;
j=2;
while(1<
=101)
{sum=sum+i*power(-1,j);
i=i+2;
j++;
printf(“%d\n”,sum);
求1*2*3*…*100
{inti,sum;
i=1,sum=1;
101)
sum=sum*i;
水仙花数:
main(){
int
a,b,c,num;
for(a=1;
a++){
for(b=0;
b++){
for(c=0;
c<
c++){
if(a*100+b*10+c==(num=a*a*a+b*b*b+c*c*c))
num);
从1到1000的素数:
#include"
stdio.h"
{intf(intn);
inti,k=0;