#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)不休。
提問:怎樣使麻雀安靜下來?
回答:壓它一下。
原因:鴉雀無聲(壓雀無聲)。