c语言第四次作业.docx
- 文档编号:4720374
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:15
- 大小:305.71KB
c语言第四次作业.docx
《c语言第四次作业.docx》由会员分享,可在线阅读,更多相关《c语言第四次作业.docx(15页珍藏版)》请在冰豆网上搜索。
c语言第四次作业
P219页第二题:
程序编写为:
#include
#include
doublex1;/*定义一个全局变量x1*/
voidmain()
{doublefuntion1(intx,inty,intz);/*对函数进行声明*/
doublefuntion2(intx,inty,intz);/*对函数进行声明*/
doublefuntion3(intx,inty,intz);/*对函数进行声明*/
inta,b,c;
doublex2,deta;
printf("请输入一元二次方程的二次方系数a,一次方系数b,常系数c:
");/*输入三个系数啊,a,b,c。
*/
scanf("%d,%d,%d",&a,&b,&c);
deta=sqrt(b*b-4*a*c);
if(deta>0){/*如果deta大于零进入funtion1计算方程的根并输出*/
x2=funtion1(a,b,c);
printf("x1=%f,x2=%f\n",x1,x2);}
elseif(deta=0){/*如果deta等于零进入funtion2计算方程的根并输出*/
x2=fountion2(a,b,c);
printf("x1=%f,x2=%f\n",x1,x2);}
else{
x2=funtion3(a,b,c);/*如果deta小于零进入funtion3计算方程的根并输出*/
printf("x1=%f+%f*i,x2=%f-%f*i\n",x1,x2,x1,x2);}
}
doublefuntion1(intx,inty,intz)/*funtion1用来计算*如果deta大于零时的根*/
{doublex2;
x1=(-y+sqrt(y*y-4*x*z))/(2*x);
x2=(-y-sqrt(y*y-4*x*z))/(2*x);
returnx2;
}
doublefuntion2(intx,inty,intz)/*funtion2用来计算*如果deta等于零时的根*/
{doublex2;
x1=(-y+sqrt(y*y-4*x*z))/(2*x);
x2=(-y-sqrt(y*y-4*x*z))/(2*x);
returnx2;
}
doublefuntion3(intx,inty,intz)/*funtion3用来计算*如果deta小于零时的根*/
{doublex2;
x1=(-y)/(2*x);
x2=sqrt(y*y-4*x*z)/(2*x);
returnx2;
}
P219页第四题
程序编写为:
#include
inta[3][3];
intfind(intx,inty)/*一个将矩阵转置的子函数*/
{intt;
for(x=0;x<3;x++)
for(y=x;y<3;y++){
t=a[x][y];
a[x][y]=a[y][x];
a[y][x]=t;
}
return0;
}
voidmain()
{
inti,j;
printf("请输入一个3*3整形矩阵:
\n");
for(i=0;i<3;i++)/*输入一个3*3的整形矩阵*/
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
find(0,0);
printf("输入转置后的3*3整形矩阵:
\n");
for(i=0;i<3;i++){/*输出转置一个3*3的整形矩阵*/
for(j=0;j<3;j++)
printf("%d",a[i][j]);
printf("\n");}
}
P219页第九题
程序编写为:
#include
intletter,digit,space,others;/*定义全局变量*/
voidcount(charstr[])
{inti;
for(i=0;str[i]!
='\0';i++)
if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))/*判断字母的个数*/
letter++;
elseif(str[i]>='0'&&str[i]<='9')/*判断数字的个数*/
digit++;
elseif(str[i]==32)/*判断空格的个数*/
space++;
else/*判断其他字符的个数*/
others++;
}
intmain()
{charstr1[80];
printf("inputstring:
\n");
gets(str1);/*输入字符*/
letter=0;
digit=0;
space=0;
others=0;
count(str1);/*引用子函数count*/
printf("\nletter:
%d\ndigit:
%d\nspace:
%d\nothers:
%d\n",letter,digit,space,others);
return0;
}
P219页第十一题
程序编写为:
#include
intorder(int*p)
{inti,j,t,k;
for(i=0;i<9;i++){/*选择升序*/
k=i;/*k为当前最小数的下标,初始值设为i*/
for(j=i+1;j<10;j++)/*查找比*(p+k)小的数*/
if(*(p+k)>*(p+j))
k=j;/*更改最小数的下标*/
if(k!
=i)/*如果下标有更改,将最小值*(p+i)与*(p+j)交换*/
{t=*(p+i);
*(p+i)=*(p+k);
*(p+k)=t;
}
}
return0;
}
voidmain()
{inta[10],x;
printf("请输十个字符:
\n");
for(x=0;x<10;x++)/*输入十个字符*/
scanf("%d",&a[x]);
order(&a[0]);
printf("重新排列后的字符为:
\n");
for(x=0;x<10;x++)/*输出排序后的十个字符*/
printf("%d",a[x]);
printf("\n");
}
P219页第十三题
程序编写为:
#include
voidmain()
{floatfuntion(floatx,intn);/*对函数进行声明*/
floatp,x;
intn;
printf("Pleaseenterxandn:
");
scanf("%f,%d",&x,&n);
p=funtion(x,n);/*调用函数*/
printf("P%d(%4.2f)=%6.2f\n",n,x,p);/*输出结果*/
}
floatfuntion(floatx,intn)
{
if(n==0)return1;/*求Pn(x)的值*/
elseif(n==1)returnx;
else
return((2*n-1)*x-funtion(x,n-1)-(n-1)*funtion(x,n-2))/n;
}
P219页第十六题
程序编写为:
#include
#defineMAX1000
inthtoi(chars[])
{inti,n;
n=0;
for(i=0;s[i]!
='\0';i++)
{if(s[i]>='0'&&s[i]<='9')
n=n*16+s[i]-'0';
if(s[i]>='a'&&s[i]<='f')
n=n*16+s[i]-'a'+10;
if(s[i]>='A'&&s[i]<='F')
n=n*16+s[i]-'A'+10;
}
return(n);
}
intmain()
{
intc,i,flag,flag1;
chart[MAX];
i=0;
flag=0;
flag1=1;
printf("inputaHEXnumber:
");
while((c=getchar())!
='\0'&&i {if(c>='0'&&c<='9'||c>='a'&&c<='f'||c>='A'&&c<='F') {flag=1; t[i++]=c; } elseif(flag) {t[i]='\0'; printf("decimalnumber%d\n",htoi(t)); printf("continueornot? "); c=getchar(); if(c=='N'||c=='n') flag1=0; else {flag=0; i=0; printf("\ninputaHEXnumber: "); } } } return0; } P291页第七题 程序编写为: #include #include voidcopystr(char*p1,char*p2,intm) {intn; n=0; while(n {n++; p1++; } while(*p1! ='\0')/*从字符一的第m个字符开始复制,直到结束*/ {*p2=*p1; p1++; p2++; } *p2='\0'; } intmain() {intm; charstr1[20],str2[20]; printf("请输入第一个字符: "); gets(str1); printf("输入要开始复制的那个位数: "); scanf("%d",&m); if(strlen(str1) printf("输入错误! "); else {copystr(str1,str2,m); printf("result: %s\n",str2); } return0; } P291页第九题 程序编写为: #include intfind(int*p)/*一个将矩阵转置的子函数*/ {intx,y,t; for(x=0;x<3;x++) for(y=x;y<3;y++){ t=*(p+3*x+y); *(p+3*x+y)=*(p+3*y+x); *(p+3*y+x)=t; } return0; } voidmain() { inti,j,a[3][3]; printf("请输入一个3*3整形矩阵: \n"); for(i=0;i<3;i++)/*输入一个3*3的整形矩阵*/ for(j=0;j<3;j++) scanf("%d",&a[i][j]); find(&a[0][0]); printf("输入转置后的3*3整形矩阵: \n"); for(i=0;i<3;i++){/*输出转置一个3*3的整形矩阵*/ for(j=0;j<3;j++) printf("%d",a[i][j]); printf("\n");} } P291页第十二题 程序编写为: #include #include voidsort(char*s[]) {inti,j; char*temp; for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(strcmp(*(s+j),*(s+j+1))>0) {temp=*(s+j); *(s+j)=*(s+j+1); *(s+j+1)=temp; } } intmain() {inti; char*p[10],str[10][20]; for(i=0;i<10;i++) p[i]=str[i]; printf("输入一个位数为十的字符串: \n"); for(i=0;i<10;i++) scanf("%s",p[i]); sort(p); printf("重新排列的字符顺序为: \n"); for(i=0;i<10;i++) printf("%s\n",p[i]); return0; } P291页第十八题 程序编写为: #include intmain() {char*xingqi_name[8]={"illegalday","Monday","Tuesday","Wednesday","Thursday", "Friday","Saturday","Sunday"}; intn; printf("输入星期几: \n"); scanf("%d",&n); if((n<=12)&&(n>=1)) printf("Itis%s.\n",*(xingqi_name+n)); else printf("Itiswrong.\n"); return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第四 作业