本文主要分为18个C语言必须记忆的经典程序。在下面的文章中,我们来看一些例子。需要的小伙伴可以参考一下。希望对你有帮助。
目录
1、输出9*9公式2、古典问题3、判断101-200之间有多少个素数,输出所有素数和素数个数4、如果一个数正好等于它的因子之和,这个数称为“完全数”5、将一个44的数组逆时针旋转90度输出6、编程打印直角杨辉三角形7、输出。逆序输出输入字符串9,从字符数组S中删除C中存储的字符10,写一个voidsort(int *x,int n)实现X数组中的n个数据从最大到最小将是11,在数组中插入一个输入数12,写一个函数实现替换13,从另一个字符串中找到另一个字符串14,用指针变量输出结构数组元素。15.建立一个简单的三节点链表。16.输入一个字符串来判断它是否是回文。17.冒泡排序。18.写出countpi函数并使用公式。
1、 输出9*9口诀
9*9公式输出9行9列,I控制行,J控制列。
#include 'stdio.h '
主()
{int i,j,result
for(I=1;i10我)
{ for(j=1;j10j)
{
结果=I * j;
printf('%d*%d=%-3d ',I,j,result);/*-3d表示左对齐,占3位数*/
}
printf(' \ n ');/*每行后换行*/
}
}
2、古典问题
有一对兔子。他们从出生后的第三个月开始,每个月都有一对兔子。小兔子长到第三个月以后,每个月又生一对兔子。如果兔子不死,每个月兔子总数是多少?
兔子的规律是1,1,2,3,5,8,13,21的顺序。
主()
{
长f1,F2;
int I;
f1=F2=1;
for(I=1;i=20我)
{ printf('ldld',f1,f2);
if(I % 2==0)printf(' \ n ');/*控制输出,每行四个*/
f1=f1 f2/*将前两个月相加,分配给第三个月*/
f2=f1 f2/*将前两个月相加,分配给第三个月*/
}
}
3.确定101到200之间有多少个素数,输出所有素数和素数个数。
程序分析:判断素数的方法:用一个数分别除2到sqrt(这个数)。如果能平分的话,
表示这个数不是素数,否则就是素数。
#包含“math.h”
主()
{
intm,I,k,h=0,leap=1;
printf(' \ n ');
for(m=101;m=200m)
{ k=sqrt(m ^ 1);
for(I=2;I=k;我)
如果(m%i==0)
{ leap=0;打破;}
如果(leap) /*在内部循环结束后,leap仍为1,则m是素数*/
{printf('%-4d ',m);h;
if(h==0)
printf(' \ n ');
}
闰=1;
}
printf(' \ n总数为%d ',h);
}
4、一个数如果恰好等于它的因子之和,这个数就称为“完数”
例如:6=1+2+3.编程;编排
找出1000以内的所有完整数字。
主()
{
static int k[10];
inti,j,n,s;
for(j=2;j1000j)
{
n=-1;
s=j;
for(I=1;ij;我)
{if((j%i)==0)
{ n;
s=s-I;
k[n]=I;
}
}
如果(s==0)
{printf('%d是一个wanshu:',j);
for(I=0;在;我)
printf('%d ',k[I]);
printf('%d\n ',k[n]);
}
}
}
5、将一个44的数组进行逆时针旋转90度后输出
下面这个程序的作用是将一个44的数组逆时针旋转90度,然后输出。要求原数组的数据随机输入,新数组4行4列输出。
请在空白处完善程序。
主()
{ int a[4][4],b[4][4],I,j;/*a存储原始数组数据,B存储旋转后的数组数据*/
printf('输入16个数字:');
/*输入一组数据存放在数组A中,然后旋转存放在数组B中*/
for(I=0;i4;我)
for(j=0;j4;j)
{ scanf('%d ',a[I][j]);
b[3-j][I]=a[I][j];
}
printf(' arrayb:\ n ');
for(I=0;i4;我)
{ for(j=0;j4;j)
printf('m ',b[I][j]);
printf(' \ n ');
}
}
6、编程打印直角杨辉三角形
主()
{int i,j,a[6][6];
for(I=0;I=5;我)
{ a[I][I]=1;a[I][0]=1;}
for(I=2;I=5;我)
for(j=1;j=I-1;j)
a[I][j]=a[I-1][j]a[I-1][j-1];
for(I=0;I=5;我)
{ for(j=0;j=I;j)
printf('M ',a[I][j]);
printf(' \ n ');}
}
7.通过键盘输入3名学生的4门课程成绩。
在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置
,不存在则返回-1。
主()
{夏尔S1[6]='这是';char S2[5]=' is ';
printf('%d\n ',search(s1,S2));
系统("暂停");
}
int search(chars1[],char s2[])
{inti=0,j,len=strlen(S2);
while(s1[i]){
for(j=0;jlenj)
if(s1[i j]!=S2[j])破;
if(j=len)返回我;
否则我;
}
return-1;
}
8、完善程序,实现将输入的字符串反序输出
结构学生
{
整数
字符*名称
迷人的性爱;
年龄
}stu[5]={{1001,'丽华,' F ',18},{1002,'刘星,' M ',19},{1003,'黄可,' F ',19},{1004,'丰收,' F ',19},{1005,'王铭,' M ',18 } };
主()
{ int I;
结构学生* ps
printf(' Num \ t name \ t \ t \ tSex \ tAge \ t \ n ');
/*用指针变量输出结构体数组元素。*/
for(PS=stu;psstu 5;ps)
printf(' % d \ t %-10s \ t \ t % c \ t % d \ t \ n ',ps-num,ps-name,ps-sex,PS-age);
/*用数组下标法输出结构体数组元素学号和年龄。*/
for(I=0;i5;我)
printf('%d\t%d\t\n ',stu[i].数字,斯图[我].年龄);
}
9、从字符数组s中删除存放在c中的字符
#定义NULL 0
结构学生
{
整数
字符*名称
年龄
结构学生*下一个;
};
void main()
{
struct studenta,b,c,*head,* p;
名字=' lihuaa。年龄=18;/* 对结点成员进行赋值*/
b.num=1002b.name="刘星";乙。年龄=19;
c.num=1003c.name=黄可;c。年龄=18;
head=a;/* 建立链表,一个为头结点*/
答。下一个=b;
乙。next=c;
c.next=NULL
p=头部;/* 输出链表*/
做{
printf('],%s,=\n ',p-num,p-name,p-age);
p=p-next;
}while(p!=NULL);
}
10、编写一个voidsort(int *x,int n)实现将x数组中的n个数据从大到小
输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。
# includestdio.h
#includestring.h
#includestring.h
主()
{ char s[100];
int i,j,n;
printf('输入字符串:\ n’);
获取;
n=strlen(s);
for(i=0,j=n-1;ij;我,j -)
如果(s[i]!=s[j])break;
if(i=j) printf('是回文串\ n’);
else printf('不是回文串\ n’);
}
11、输入的一个数插入数组中
冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out
# includestdio.h
void fun(inta[],int n)
{int i,j,t;
for(I=0;I=n-1;我)
for(j=0;纪;j)
if(a[j]a[j 1]){ t=a[j];a[j]=a[j 1];a[j ^ 1]=t;}
}
主()
{inta[10]={12,45,7,8,96,4,10,48,2,46},n=10,I;
文件* f;
if((f=fopen('myf2.out ',' w ')==NULL)
printf('打开文件myf2.outfailed!\ n’);
好玩(a,10);
for(I=0;i10我)
{printf('M ',a[I]);
fprintf(f,' M ',a[I]);
}
fclose(f);
}
12、编写函数实现替换
计算的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
# includestdio.h
doublecountpi(双eps) /*eps为允许误差*/
{
int m=1;
双温度=1.0,s=0;
while(temp=eps)
{ s=温度
temp=temp * m/(2 * m ^ 1);
m;
}
return(2 * s);
}
主()
{文件* fp
双eps=1e-5,pi;
if((fp=fopen('p7_3.out ',' w ')==NULL)
{ printf('无法打开文件\ n’);
退出(0);
}
pi=countpi(每股收益);
printf('pi=%lf\n ',pi);
fprintf(fp,' pi=%lf\n ',pi);
fclose(FP);
}
到此这篇关于C语言18个必背经典程序的文章就介绍到这了,更多相关C语言经典程序内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。