Example1.docx

上传人:b****7 文档编号:9460676 上传时间:2023-02-04 格式:DOCX 页数:22 大小:54.52KB
下载 相关 举报
Example1.docx_第1页
第1页 / 共22页
Example1.docx_第2页
第2页 / 共22页
Example1.docx_第3页
第3页 / 共22页
Example1.docx_第4页
第4页 / 共22页
Example1.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

Example1.docx

《Example1.docx》由会员分享,可在线阅读,更多相关《Example1.docx(22页珍藏版)》请在冰豆网上搜索。

Example1.docx

Example1

Example1.3

voidmain()

{

intmax(intx,inty);

inta,b,c;

scanf("%d,%d",&a,&b);

c=max(a,b);

printf("maxis%d\n",c);

}

intmax(intx,inty)

{

intt;

if(x>y)

t=x;

else

t=y;

return(t);

}

Example1(1.6)

#include

voidmain()

{

intmax(intx,inty,intz);

inta,b,c,sum;

scanf("%d,%d,%d",&a,&b,&c);

sum=max(a,b,c);

printf("max=%d\n",sum);

}

intmax(intx,inty,intz)

{

intnum;

if(x>y)

if(x>z)

num=x;

else

num=z;

else

if(y>z)

num=y;

else

num=z;

return(num);

}

练习2.4(5):

2.5(4)

2.6(4)

方法一:

开始

置i=1

置sum=0

当i不大于100时,执行下面的操作:

使sum=sum+i

使i=i+1

打印sum

结束

方法二:

Begin

1→i

0→sum

Whilei<=100

{

sum=sum+i;

i=i+1;

}

32个关键字:

(由系统定义,不能重作其它定义)

autobreakcasecharconst

continuedefaultdodoubleelse

enumexternfloatforgoto

ifintlongregisterreturn

shortsignedsizeofstaticstruct

switchtypedefunsignedunionvoid

volatilewhile

类型转换在赋初值和不同类型数据进行混合运算时都会遇到。

具体的转换规则参见课本P59页。

将在下一节讲赋值运算符时具体介绍。

P111练习5.4

方法一:

#include

voidmain()

{

inta,b,c;

printf(“请输入3个整数:

”);

scanf(“%d,%d,%d”,&a,&b,&c);

if(a

if(b

printf(“max=%d\n”,c);

else

printf(“max=%d\n”,b);

elseif(a

printf(“max=%d\n”,c);

else

printf(“max=%d\n”,a);

}

方法二:

使用条件表达式,可以使程序更加简明。

#include

voidmain()

{

inta,b,c,temp,max;

printf(“请输入3个整数:

”);

scanf(“%d,%d,%d”,&a,&b,&c);

temp=(a>b)?

a:

b;

max=(temp>c)?

temp:

c;

printf(“3个整数的最大数是%d\n”,max);

}

P111练习5.7

算法:

输入一个数num;place为位数;

indiv,ten,hundred,thousand,ten_thousand分别表示个、十、百、千、万;

/*判断是几位数*/

Ifnum>9999place=5;

Ifnum>999place=4;

Ifnum>99place=3;

Ifnum>9place=2;

否则place=1;

/*计算每位的数字*/

ten_thousand=num/10000;

thousand=(int)(num-ten_thousand*10000)/1000;

hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;

ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;

indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);

/*反序数字*/

switch(place)

{

case5:

输出indiv,ten,hundred,thousand,ten_thousand;

case4:

输出indiv,ten,hundred,thousand;

case3:

输出indiv,ten,hundred;

case2:

输出indiv,ten;

case1:

输出indiv;

}

P129T6.2

#include

voidmain()

{

intletters=0,space=0,digit=0,other=0;

chart;

printf(“inputastring:

\n”);

while(t=getchar()!

=’\n’)

{

if(t>=’a’&&t<=’z’||t>=’A’&&t<=’Z’)

letters++;

elseif(t>=’0’&&t<=’9’)

digit++;

elseif(t==’‘)

space++;

else

other++;

}

printf(“letternumber=%d\nspacenumber=%d\ndigitnumber=%d\nothernumber=%\n”,letters,space,digit,other);

}

求练习6.5中第二项的值

#include

voidmain()

{

intk=1;

floatsum=0;

do

{

sum=sum+k*k;

k++;

}while(k<=50);

printf("%f",sum);

}

用for语句求解练习6.5中的第三项值

#include

voidmain()

{

intk;

floatsum=0;

for(k=1;k<=10;k++)

sum=sum+1./k;

printf("%f",sum);

}

练习6.4

#include

voidmain()

{

floats=0,t=1;//s不能定义为int型,因为超出范围,-32768~32767

intn;

for(n=1;n<=20;n++)

{

t=t*n;

s=s+t;

}

printf("%e",s);

}

Charpter6思考1

#include

voidmain()

{

inti,j;

for(i=1;i<=4;i++)

{

for(j=1;j<=i;j++)

printf("%4d",i*j);

printf("\n");

}

}

思考2

#include

voidmain()

{

inti,j;

for(i=1;i<=4;i++)

{

for(j=1;j<=5-i;j++)

printf("%4d",i*j);

printf("\n");

}

}

思考3

#include

voidmain()

{

inti,j;

for(i=1;i<=4;i++)

{

for(j=5-i;j<=4;j++)

printf("%4d",i*j);

printf("\n");

}

}

思考4

#include

voidmain()

{

inti,j;

for(i=1;i<=4;i++)

{

for(j=1;j<=i-1;j++)

printf("%4c",'');

for(j=i;j<=4;j++)

printf("%4d",i*j);

printf("\n");

}

由小到大的顺序输出0~7的二进制数.

main()

{

inti,j,k;

printf("ijk\n");

for(i=0;i<2;i++)

for(j=0;j<2;j++)

for(k=0;k<2;k++)

printf("%d%d%d\n",i,j,k);

}

练习6.14

⏹#include"stdio.h"

⏹voidmain()

⏹{

⏹inti,j,k;

⏹for(i=1;i<=4;i++)

⏹{

⏹for(j=1;j<=4-i;j++)

⏹printf("");

⏹for(k=1;k<=2*i-1;k++)

⏹printf("*");

⏹printf("\n");

⏹}

⏹}

例6.6

#include

#include

voidmain()

{

ints,i;

floatn,t,pi;

t=1;pi=0;n=1.0;i=1;

while((fabs(t))>1e-6)

{pi=pi+t;

n=n+2;

if(i%2==0)

t=1/n;

else

t=-1/n;

i++;

}

pi=pi*4;

printf("pi=%10.6f\n",pi);

}

练习6.8

#include

voidmain()

{

inti,t,j,n=20;

floata=2,b=1,s=0;

for(i=1;i<=n;i++)

{

s=s+a/b;

t=a;

a=a+b;

b=t;

}

printf("sum=%f\n",s);

}

练习7.3

#include

Voidmain

{

inta[3][3],sum=0;

inti,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

scanf(“%d”,&a[i][j]);

for(i=0;i<3;i++)

sum=sum+a[i][i];

printf(“sum=%d”,sum);

}

字符数组举例

#include

#include

main()

{

charstring[20];

charstr[5][20];

inti;

for(i=0;i<5;i++)

gets(str[i]);

strcpy(string,str[0]);

for(i=1;i<5;i++)

if(strlen(str[i])>strlen(string))

strcpy(string,str[i]);

printf("thelargeststringis:

%s\n",string);

}

 

练习7.5

#include"stdio.h"

#defineN4

voidmain()

{

inta[N]={8,6,5,1},t,i;

for(i=0;i

{

t=a[i];

a[i]=a[N-1-i];

a[N-1-i]=t;

}

for(i=0;i

printf("%4d",a[i]);

}

练习7.6

#include"stdio.h"

#defineN10

voidmain()

{

inta[N][N];

inti,j;

for(i=0;i

{

a[i][0]=1;

a[i][i]=1;

}

for(i=2;i

for(j=1;j

a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=0;i

{

for(j=0;j<=i;j++)

printf("%6d",a[i][j]);

printf("\n");

}

}

练习7.15

#include"stdio.h"

#include"string.h"

voidmain()

{

chars1[80],s2[80];

inti;

scanf("%s",s2);

//gets(s2);wrong!

for(i=0;i<=strlen(s2);i++)

s1[i]=s2[i];

printf("%s",s1);

}

 

⏹练习:

求两个数的阶乘和。

⏹要求:

用三个函数:

主函数,求和函数,求阶乘函数。

#include"stdio.h"

voidmain()//求两数阶乘的和

{

intm,n,c;

intfac(intx);

intadd(inta,intb);//函数声明

printf("inputm,n:

");

scanf("%d%d",&m,&n);

c=add(fac(m),fac(n));

printf("Theresultis%8.1d",c);

}

intfac(intx)//求阶乘函数的定义

{inti,t=1;

for(i=1;i<=x;i++)

t=t*i;

return(t);

}

intadd(intx,inty)//求和函数的定义

{intsum;

sum=x+y;

return(sum);

}

用递归算法计算:

s=13+23+…+n3

#include"stdio.h“

intlifang(intn);

voidmain()

{

ints;

intn;

scanf("%d",&n);

s=lifang(n);

printf("%d",s);

}

intlifang(intn)

{ints1;

if(n==1)s1=1;

elses1=lifang(n-1)+n*n*n;

return(s1);

}

 

编写函数求学生成绩的及格率

#include

floatjigelv(intstu[10],intn);

voidmain()

{intscore[10],i;

floatlv;

printf("Input10scores:

\n");

for(i=0;i<10;i++)

scanf("%d",&score[i]);

lv=jigelv(score,10);

printf("jigelvis:

%.2f",lv);

}

floatjigelv(intstu[10],intn)

{inti;

floatt=0;

for(i=0;i

if(stu[i]>=60)

t++;

t=t/10;

returnt;

}

练习1:

输出字符串中n个字符后的所有字符。

•main()

•{

•char*ps;

•intn,i;

•gets(ps);

•scanf("%d",&n);

•for(i=0;i

•printf("%s\n",ps);

•}

练习2、在输入的字符串中查找有无‘k’字符。

•#include"stdio.h"

•voidmain()

•{

•char*p;

•inti;

•gets(p);

•for(i=0;*p!

='\0';i++,p++)

•if(*p=='k')

•{

•printf("thereisa'k'inthestring\n");

•break;

•}

•if(*p=='\0')printf("Thereisno'k'inthestring\n");

•}

输出数组中正数的个数

•#include"stdio.h"

•voidmain()

•{inti,m=0;

•int*p,n[3];

•p=n;

•for(i=0;i<3;i++)

•scanf("%d",p++);

•p=n;

•for(i=0;i<3;i++)

•{if(*p>0)

•m++;

•p++;}

•printf("%d",m);

读入一个数组,并判断数组的每个元素值,若大于0,元素值变为1,若小于0,元素值为-1;最后输出数组。

要求:

用指针作该题,并编写三个函数1、输入10个数,2、进行处理,3、输出10个数。

•#include"stdio.h"

•voidinput(int*p,intn)

•{inti;

•for(i=0;i

•scanf("%d",p++);

•}

•voidchange(int*p,intn)

•{inti;

•for(i=0;i

•{if(*p>0)*p=1;

•elseif(*p==0)*p=0;

•else*p=-1;

•p++;}

•}

•voidoutput(int*p,intn)

•{inti;

•for(i=0;i

•printf("%d",*p++);

•}

•voidmain()

•{

•inta[3],*p;

•input(a,3);

•change(a,3);

•output(a,3);

•}

 

练习10.1

#include"stdio.h"

voidmain()

{

inta,b,*p;

a=3;b=10;

p=&a;

printf("%d\n",p);

p=&b;

printf("%d",p);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1