当前位置:文档之家› C语言例题

C语言例题

1.//求素数算法
#include
#include
#define N 100000
void main()
{
int a,i,b,j,n=0;
for(j=2;j<=N;j++)
{
a=(int)sqrt(j);
for(i=2;i<=a;i++)
{
if(j%i==0)
break;
}
if(i>a)
printf("%d\n",j);

}
}
2.//计算闰年
#include
void main()
{
int i,j,y;
do
{
printf("Enter a years\n");
scanf("%d",&y);
if(y%4==0&&y%100==0||y%400==0)
printf("This year yes\n");
else
printf("This year no\n");
}
while(y!='@');
}
3.//abc排序
#include
void main()
{
int a,b,c,t;
printf("Enter three number\n");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
t=a;a=b;b=t;
}
if(a>c)
{
t=a;a=c;c=t;
}
if(b>c)
{
t=b;b=c;c=t;
}
printf("%d %d %d\n",a,b,c);
}
//4.杨辉三角形
/*#include
#define N 15
void getdate(int(*s)[N],int n)
{
int i,j;
for(i=0;i{
s[i][0]=1;
s[i][i]=1;
}
for(i=2;i{
for(j=1;j{
s[i][j]=s[i-1][j-1]+s[i-1][j];
}
}
}
void outdate(int (*s)[N],int n)
{
int i,j;
for(i=0;i{
for(j=0;j<=i;j++)
printf("%5d",s[i][j]);
printf("\n");
}
}
void main()
{
int y[N][N];
getdate(y,N);
outdate(y,N);

}*/
//5.两个字符是否包含
/*#include
#include
int find(char *s1,char *s2)
{
int i,k=0;
while(*s1)
{
i=0;printf("%d\n",s1);
while(s1[i]==s2[i]) i++;printf("%d\n",i);
if(s2[i]=='\0') return(k);
s1++;k++;printf("%d\n",s1);
}
return(-1);
}
main()
{
int i;
char s1[200],s2[100];
gets(s1);gets(s2);
i=find(s1,s2);
if(i==-1)
printf("s1=%s s2=%s\n No substring!\n",s1,s2);
else
printf("s1=%s s2=%s\n starting pos of substring is %d\n",s1,s2,i);


}
//6输入字符串并找到最小字符串
#include
#include
#define M 80
int getstr(char(*p)[M]
{
char op[M];
int i=0;
printf("Enter a string until empty\n");
gets(op);
while(strcmp(op,""))
{
strcpy(p[i],op);
i++;
gets(op);
}
return i;
}
int * findmin(char q[][M],int n)
{
char *p;
int i;
p=q[0];
for(i=1;iif(strcmp(q[i],p)<0)
p=q[i];
return p;
}
void main()
{
char s[M][M],i,*p;
i=getstr(s);
p=findmin(s,i);
puts(p);
}
//7不用strcat函数将两个字符串连接
#include
#include
int main()
{
char m[10],n[10];
int i,j,a,b;
printf("Enter two string\n");
gets(m);
gets(n);
a=strlen(m);
b=strlen(n);
for(i=a,j=0;j<=b;i++,j++)
{
m[i]=n[j];
}
printf("%s\n",m);
}
//8翻译密码A-Z,B-Y,a-z,b-y
#include
#include
#define M 100
int main()
{
char a[M];
int i,n=0;
printf("Enter a mima\n");
gets(a);
for(i=0;i<=strlen(a);i++)
{
if((a[i]>='A'&&a[i]<='Z'))

{
while(a[i]!='A'+n)
n++;
a[i]=a[i]+(25-n*2);
}
else if((a[i]>='a'&&a[i]<='z'))
{
while(a[i]!='a'+n)
n++;
a[i]=a[i]+(25-n*2);
}

}
puts(a);
}
//结构体定义
/*#include
struct date
{
int year,month,day;
};
struct student
{
char name[6];
char sex;
struct date birthday;
double sec[10];
};
typedef struct student st;
void showdate(st*p)
{
int i;
printf("%s\n",p->name);
printf("%c\n",(*p).sex);
printf("%d-%d-%d\n",(*p).birthday.year,(*p).birthday.month,p->birthday.day);
for(i=0;i<10;i++)
printf("%5.1f\n",p->sec[i]);
}
void main()
{
st std={"YUBO",'B',1997,3,5,88.1,88.2,88.3,88.4,88.5,88.6,88.7,88.8,88.9,90},*p;
p=&std;
showdate(p);
}*/
//动态存储分配
/*#include
int main()
{
int *p;
p=(int *)malloc(sizeof(int));//void*
*p=100;
printf("%d\n",*p);
free(p); printf("%d\n",*p);
p=(int *)malloc(sizeof(int));
*p=10;
printf("%d\n",*p);
free(p); printf("%d\n",*p);
}*/
//构建一个静态链表
/*#include
struct nood
{
int date;
struct nood *p;
};
typedef struct nood NOOD;
void main()
{
NOOD a,b,c,d,*q,*h;
a.date=10;
b.date=100;
c.date=1000;
d.date=4294967295;
q=&a;
a.p=&b;
b.p=&c;
c.p=&d;
d.p='\0';
h=q;
while(q)
{
printf("%u\n",q->date);
q=q->p;
}
}*/
//创建一个动态链表(创建,打印输出,插入,删除)
#include
#include
typedef struct slist
{
int date;
struct slist *next;
}ST;
ST *creat_list()
{
ST *h,*s,*r;
int c;
h=(ST*)malloc(sizeof(ST));//产生头结点
scanf("%d",&c);
r=h;
while(c!=-1)
{
s=(ST*)malloc(sizeof(ST));//产生新结点
s->date=c;//连接两个结点
r->next=s;
r=s;
scanf("%d",&c);
}
r->next='\0';
return h;
}
print_list(ST*head)
{
ST*p;
p=head->next;
if(p=='\0')
printf("Link list is null\n");
else
{
printf("head\n");
do
{
printf("-->%d",p->date);
p=p->next;
}while(p!='\0');
printf("-->End\n");
}
}
insert_nood(ST*head,int x,int y)
{
ST*s,*p,*q;
s=(ST*)malloc(sizeof(ST));//生成结点
s->date=y;
q=head;
p=q->next;
while((p!='\0')&&(p->date!=x))
{
q=p;
p=p->next;
}
s->next=p;
q->next=s;

}
dele_nood(ST*head,int x)
{
ST*p,*q;
q=head;
p=q->next;
while((p!='\0')&&(p->date!=x))
{
q=p;
p=p->next;
}
if(p->date==x)
q->next=p->next;
free(p);

}
void main()
{
ST *head;
int x,y;
head=creat_list();
print_list(head);
printf("请输入要查找的值\n");
scanf("%d",&x);
printf("请输入要插入的值\n");
scanf("%d",&y);
insert_nood(head,x,y);
print_list(head);
printf("请输入要删除的结点\n");
scanf("%d",&x);
dele_nood(head,x);
printf("要删除的结点是:%d\n",x);
print_list(head);
}
//判断多少天
#include
str

uct date
{
int year;
int month;
int day;
};

int leap_year(int a);
int cal_day(struct date a);*/

/*判断闰年*/
/*int leap_year(int a)
{
if(a%400==0||(a%4==0&&a%100!=0))
return 1;
else
return 0;*/

// if(a%400==0)
// return 1;
// else if(a%100==0)
// return 0;
// else if(a%4==0)
// return 1;
// else
// return 0;
//}

/*计算一年中的第几天*/
/*int cal_day(struct date a)
{
int sum=0,b[]={31,28,31,30,31,30,31,31,30,31,30,31},i;
for(i=0;isum+=b[i];
if(a.month>2)
sum=sum+a.day+leap_year(a.year);
else
sum=sum+a.day;
return sum;
}

void main()
{
struct date a;
int n;
printf("\n请输入日期(年 月 日)\n");
scanf("%d%d%d",&a.year,&a.month,&a.day);
n=cal_day(a);
printf("该日在本年中是第%d天\n",n);
}*/

相关主题
文本预览
相关文档 最新文档