北科大C语言程序设计实验报告8Word格式.docx
《北科大C语言程序设计实验报告8Word格式.docx》由会员分享,可在线阅读,更多相关《北科大C语言程序设计实验报告8Word格式.docx(24页珍藏版)》请在冰豆网上搜索。
![北科大C语言程序设计实验报告8Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/22/183c2021-2c84-492c-beb1-a3f0a17a5e8f/183c2021-2c84-492c-beb1-a3f0a17a5e8f1.gif)
Pleaseenterrownumbers:
\n"
);
scanf("
%d"
&
m);
Pleaseentercolnumbers:
n);
int*p=(int*)malloc(m*n*sizeof(int));
Pleaseenternumbers:
for(i=0;
i<
m;
i++)
{
for(j=0;
j<
n;
j++)
scanf("
p+i*n+j);
}
max=*p;
row=0,col=0;
if(*(p+i*n+j)>
max)
{
max=*(p+i*n+j);
row=i+1;
col=j+1;
}
max=%d,row=%d,col=%d\n"
max,row,col);
}
3.练习题三
①答案:
程序运行过程中会出现错误!
试编写strcmp函数,源程序文本:
intstrcompare(char*,char*);
char*list1="
Seenoevil,hearnoevil,"
;
char*list2="
blindanddeaf?
"
puts(list1);
puts(list2);
intn=strcompare(list1,list2);
if(n==1)
printf("
list1>
list2\n"
elseif(n==0)
list1=list2\n"
elseif(n==-1)
list1<
intstrcompare(char*s1,char*s2)
inti=0;
while((*s1!
='
\0'
)&
&
(*s2!
))
if(*(s1+i)!
=*(s2+i))
break;
i++;
if(*(s1+i)!
*(s2+i)!
)
if(*(s1+i)>
*(s2+i))
return1;
elsereturn-1;
elseif(*(s1+i)=='
*(s2+i)=='
return0;
return-1;
else
return1;
4.练习题四
因为*s++等价于*s;
s++;
所以while((*s!
=d)&
(*s!
可以换成
while((*s!
(*s++!
));
源程序文本(修改部分红色字体标注)
#defineEMPTY0
char*findfirst(char*,char);
charstring[]="
Oh!
dayafterday."
char*ptr;
%s\n"
string);
ptr=EMPTY;
ptr=findfirst(string,'
d'
while(ptr!
=EMPTY)
*ptr='
*'
ptr=findfirst(ptr,'
char*findfirst(char*s,chard)
while((*s!
s++;
if(*s==d)
returns;
returnEMPTY;
5.练习题五
doublecube1(double);
doublecube2(double);
doublecube3(double);
doublesum(int,double(*p)(double));
double(*ptr)(double);
//ptr=cube;
input1forsumx*x;
2forsumx*x*x;
3forsum1/x:
intn,x;
inputx:
%x"
x);
ptr=cube1;
elseif(n==2)
ptr=cube2;
ptr=cube3;
sum=%.2lf\n"
sum(x,ptr));
doublesum(intn,double(*p)(double))
doubles=0;
intk;
for(k=1;
k<
=n;
k++)
s+=(*p)(k);
returns;
doublecube1(doublex)
return(x*x);
doublecube2(doublex)
return(x*x*x);
doublecube3(doublex)
return(1/x);
6.练习题六
float*pa,*pb,*pc;
floatpt;
if(pa=(float*)malloc(sizeof(float)))
scanf("
%f"
pa);
mallocforpaisfailed!
if(pb=(float*)malloc(sizeof(float)))
pb);
mallocforpbisfailed!
if(pc=(float*)malloc(sizeof(float)))
pc);
mallocforpcisfailed!
if(*pa>
*pb)
pt=*pa;
*pa=*pb;
*pb=pt;
*pc)
*pa=*pc;
*pc=pt;
if(*pb>
pt=*pb;
*pb=*pc;
%.2f%.2f%.2f\n"
*pa,*pb,*pc);
intn;
pleaseinputthenumberofdata:
float*p,temp;
p=(float*)malloc(n*sizeof(float));
pleasedatas:
for(inti=0;
p+i);
n-1;
for(intk=0;
n-i-1;
if(*(p+k)>
*(p+k+1))
temp=*(p+k);
*(p+k)=*(p+k+1);
*(p+k+1)=temp;
aftersort:
%f"
*(p+i));
自测练习
1.自测练习一
源程序文本:
intx[4]={3,11,8,22};
ints=1,*p=&
x[0];
4;
s=s*(*(p+i));
3*11*8*22=%d\n"
s);
2.自测练习二
voidf(float(*a)[4]);
floata[3][4];
input3*4numbers:
3;
for(intj=0;
a[i][j]);
f(a);
printf("
%.2f"
a[i][j]);
voidf(float(*a)[4])
float*p=a[0];
p=a[i];
{
if(a[i][j]>
*p)
p=&
a[i][j];
}
a[i][j]=a[i][j]/(*p);
3.自测练习三
string.h>
chara[]="
987654321"
char*p=a+strlen(a);
puts(a);
while(p-->
=a)
putchar(*p);
4.自测练习四
voidmain(intargc,char*argv[])
intsum=0;
for(inti=1;
argc;
sum=sum+atol(argv[i]);
sum=%d"
sum);
5.自测练习五
修改后的源程序文本(修改部分红色字体标注):
floatmatrix(float(*a)[3],intn)
inti,j;
floatsum=0;
if(i==j)
sum=sum+*(*(a+i)+j);
if(j==2-i&
i!
=j)
sum=sum+*(*(a+i)+2-i);
returnsum;
floata[3][3];
输入3*3数组\n"
sum=%0.2f\n"
matrix(a,3));
6.自测练习六(选做)
voidfsort(charcname[][6],intn)
intk,j;
chartemp[6];
for(k=0;
n-k-1;
if(strcmp(cname[j],cname[j+1])==1)
strcpy(temp,cname[j]);
strcpy(cname[j],cname[j+1]);
strcpy(cname[j+1],temp);
inti;
charcname[5][6]={"
Wang"
"
Li"
Zhang"
Jin"
Xian"
};
5;
cname[i]);
fsort(cname,5);