#include <stdio.h>
#include <string.h>
void main()
{
int search(int [],int);
int num,result;
int a[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
printf("请输入要查找的元素:\n");
scanf("%d",&num);
result = search(a,num);
if(result == -999)
printf("该元素不存在。\n");
else
printf("该元素在第%d位置。\n",result);
}
int search(int b[],int n)
{
int low=0,high=14,mid;
while(low<=high)
{
mid = (low + high)/2;
if(n<b[mid])
high = mid - 1;
else if(n>b[mid])
low = mid + 1;
else
return mid;
}
return -999;
}
#include <stdio.h>
#define swap(a,b,k) k=a;a=b;b=k;
void main()
{
int x,y,k;
printf("请输入要交换的两个值:\n");
scanf("%d%d",&x,&y);
printf("交换后,值为:\n");
swap(x,y,k);
printf("%d,%d\n",x,y);
}
#include <stdio.h>
#define divide(a,b) a%b
void main()
{
int x,y,k;
printf("请输入两个相除的数:\n");
scanf("%d%d",&x,&y);
printf("相除后,余数的值为:\n");
k=divide(x,y);
printf("%d\n",k);
}
#include <stdio.h>
#include <math.h>
#define area(s,a,b,c) sqrt(s*(s-a)*(s-b)*(s-c));
void main()
{
float x,y,k;
float s,are;
printf("请输入三角形的三条边:\n");
scanf("%f%f%f",&x,&y,&k);
printf("面积为:\n");
s = 0.5*(x+y+k);
are=area(s,x,y,k);
printf("%5.2f\n",are);
}
#include <stdio.h>
#include <math.h>
#define LEAPYEAR(y) y%4
void main()
{
int y;
scanf("%d",&y);
if(LEAPYEAR(y)) printf("%d is a not leap year\n",y);
else printf("%d is a leap year\n",y);
}
#include <stdio.h>
void main()
{
int a,b,c,*p1,*p2,*p3;
int temp;
printf("请输入3个整数:\n");
scanf("%d%d%d",&a,&b,&c);
p1 = &a; p2 = &b ; p3 = &c;
if(*p1>*p2)
{
temp = *p1 ;
*p1 = *p2;
*p2 = temp;
}
if (*p1>*p3)
{
temp = *p1 ;
*p1 = *p3;
*p3 = temp;
}
if (*p2>*p3)
{
temp = *p2 ;
*p2 = *p3;
*p3 = temp;
}
printf("排序后的数为:%d,%d,%d\n",*p1,*p2,*p3);
}
#include <stdio.h>
#define MAX 20
void main()
{
char str1[MAX],str2[MAX],str3[MAX];
char *s1=str1,*s2=str2,*s3=str3;
char *temp;
printf("Please enter tree strings divided by Enter:\n");
scanf("%s%s%s",s1,s2,s3); //不在使用换行符,多此一举
printf("after sorting:\n");
if(*s1>*s2)
{
temp = s1;
s1 = s2;
s2 = temp;
}
if(*s1>*s3)
{
temp = s1;
s1 = s3;
s3 = temp;
}
if(*s2>*s3)
{
temp = s2;
s2 = s3;
s3 = temp;
}
printf("these strings are :\n%s\n%s\n%s\n\n",s1,s2,s3);
}
#include <stdio.h>
void main()
{
int arr[10];
void input(int *,int );
void handling(int *,int );
void display(int *,int );
input(arr,10);
handling(arr,10);
display(arr,10);
}
void input(int *p,int n)
{
int *po = p;
printf("请输入10个整数:\n");
for(;p<po+n;p++)
scanf("%d",p);
}
void handling(int *p,int n)
{
int *po = p,min=*po,max=*po;
for(po=p+1;po<p+n;po++)
{
if(min > *po)
min = *po;
}
for(po=p+1;po<p+n;po++)
{
if(max < *po)
max = *po;
}
for(po = p;po<p+n;po++)
{
if(*po == min)
{
*po = max;
}
}
for(po = p+1;po<p+n;po++)
{
if(*po == max)
*po = min;
}
}
void display(int *p,int n)
{
int *po = p;
printf("10个整数为:\n");
for(;p<po+n;p++)
printf("%d ",*p);
}
#include <stdio.h>
void main()
{
bool move(int *p,int m);
int a[10]={1,2,3,4,5,6,7,8,9,10},m,isT;
printf("请输入要移动前面的几个数:\n");
scanf("%d",&m);
isT = move(a,m);
if(isT)
{
for(int i=0;i<10;i++)
printf("%d ",*(a+i));
}
}
bool move(int *p,int m)
{
int *po = p,n = 10-m;
int a[10];
for(int i=n;i<10;i++)
{
*(a+i)=*(po+i);
}
for(i=9;i>=m;i--)
{
*(po+i)=*(po+i-m);
}
for(i=0;i<m;i++)
{
*(po+i)=*(a+i+n);
}
return true;
}
#include <stdio.h>
void main()
{
int length(char *str);
int len;
char *pstr = "abc";
len = length(pstr);
printf("字符串的长度为:%d\n",len);
}
int length(char *str)
{
int count = 0;
while(*str!='\0')
{
count++;
str++;
}
return count;
}
#include <stdio.h>
struct
{
int year;
int month;
int day;
}date;
void main()
{
int days;
printf("Input year,month,day:");
scanf("%d%d%d",&date.year,&date.month,&date.day);
switch(date.month)
{
case 1: days = date.day; break;
case 2: days = 31+date.day; break;
case 3: days = 59+date.day; break;
case 4: days=date.day+90; break;
case 5: days=date.day+120; break;
case 6: days=date.day+31; break;
case 7: days=date.day+181; break;
case 8: days=date.day+212; break;
case 9: days=date.day+243; break;
case 10: days=date.day+273; break;
case 11: days=date.day+304; break;
case 12: days=date.day+334; break;
}
if((date.year%400==0)&&(date.year%4==0)&&date.month>=3)
days+=1;
printf("你所输入的日期是这一年的%d天。",days);
}
#include <stdio.h>
struct student
{
int num;
char name[10];
int score[3];
}stu[3];
void main()
{
printf("请输入学生信息:\n");
for(int i=0;i<3;i++)
scanf("%d%s%d%d%d",&stu[i].num,&stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
printf("打印学生信息:\n");
for( i=0;i<3;i++)
printf("学生%d的信息是:%d\t%s\t%d %d %d\n",i,stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
}
#include <stdio.h>
struct student
{
int num;
char name[10];
int score[3];
}stu[3];
void main()
{
void input(struct student []);
input(stu);
printf("打印学生信息:\n");
for(int i=0;i<3;i++)
printf("学生%d的信息是:%d\t%s\t%d %d %d\n",i,stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
}
void input(struct student stu[])
{
printf("请输入学生信息:\n");
for(int i=0;i<3;i++)
scanf("%d%s%d%d%d",&stu[i].num,&stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
}
#define NEWSIZE 1000//定义初始空间大小
char newbuf[NEWSIZE];//先在内存中定义一块区域供使用
char *newp=newbuf;//定义字符指针变量newp,并令其指向刚才定义的区域开始位置
char *new(int n)//定义函数new,其返回值为一字符指针
{
if(newp+n<=newbuf+NEWSIZE)//判断所开辟区域大小在先前定义的范围内
{
newp=newp+n;//使new到new+n范围内的内存空间供程序使用
return newp-n;//返回newp-n,即newbuf位置,newbuf到newbuf+n区域即已开辟成功
}
else
return NULL;//若要开辟的空间过大,则返回NULL
}
//通过while循环一行行取,读到文件末尾就是NULL了 ----读取整个文件
#include <stdio.h>
void main( void )
{
FILE *stream;
char line[100];
if( (stream = fopen( "file.txt", "r" )) != NULL )
{
while( fgets( line, 100, stream ) != NULL)
printf( "%s", line);
fclose( stream );
}
}
提问:茉莉花、太阳花、玫瑰花哪一朵花最没力?
回答:茉莉花。
原因:好一朵美丽(没力)的茉莉花。
提问:猩猩最讨厌什么线?
回答:平行线。
原因:平行线没有相交(香蕉)。
提问:橡皮、老虎皮、狮子皮哪一个最不好?
回答:橡皮。
原因:橡皮擦(橡皮差)。
提问:布和纸怕什么?
回答:布怕一万,纸怕万一。
原因:不(布)怕一万,只(纸)怕万一。
提问:铅笔姓什么?
回答:萧。
原因:削(萧)铅笔。
提问:麒麟到了北极会变成什么?
回答:冰淇凌。
原因:冰淇凌(冰麒麟)。
提问:哪位历史人物最欠扁?
回答:苏武。
原因:苏武牧羊北海边(被海扁)。
提问:从1到9哪个数字最勤劳,哪个数字最懒惰?
回答:1懒惰;2勤劳。
原因:一(1)不做二(2)不休。
提问:怎样使麻雀安静下来?
回答:压它一下。
原因:鸦雀无声(压雀无声)。