上机测试二答案.docx
- 文档编号:7828566
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:10
- 大小:15.98KB
上机测试二答案.docx
《上机测试二答案.docx》由会员分享,可在线阅读,更多相关《上机测试二答案.docx(10页珍藏版)》请在冰豆网上搜索。
上机测试二答案
上机测试
(二)
1.找出一个二维数组(4*4)中的鞍点,即该位置上的元素在该行上最大,在该列上最小。
也可能没有鞍点。
//第一种解法
voidmain()
{
inta[4][4]={{21,23,54,32},
{32,45,64,55},
{32,54,70,76},
{22,4,70,76}};
inti,j,k,max,min,flag=0;
for(i=0;i<4;i++)
{
max=a[i][0];
for(j=1;j<4;j++)
if(a[i][j]>max)
{
max=a[i][j];
k=j;
}
min=a[0][k];
for(j=1;j<4;j++)
{
if(a[j][k] min=a[j][k]; } if(max==min) { flag=1; printf("Theresultis%d,it'sinrow%d,colum%d",min,i,k); } } if(flag==0) printf("Donotexistsuchadata."); } //第二种解法 voidmain() { inti,j; inta[4][4]={{1,4,6,2} {2,4,7,11} {1,5,9,13} {7,22,8,8}}; intflag=0; for(i=0;i<4;i++) for(j=0;j<4;j++) { if((a[i][j]>=a[i][0])&&(a[i][j]>=a[i][1])&& (a[i][j]>=a[i][2])&&(a[i][j]>=a[i][3])&& (a[i][j]<=a[0][j])&&(a[i][j]<=a[1][j])&& (a[i][j]<=a[2][j])&&(a[i][j]<=a[3][j])) { printf("therowis: %d\nthecolumnis: %d\n",i,j); flag=1; } } if(ad_flag==0) printf("Noandian! "); } //改进算法 #defineM4 #defineN4 voidmain() { inth=0,i,j,k,m; inta[M][N]={{1,4,6,2}, {2,4,7,11}, {1,5,9,13}, {7,22,8,8}}; for(i=0;i for(j=0;j { m=0; for(k=0;k { if(a[i][j]>=a[i][k]) m++; } if(m! =N) continue; else { m=0; for(k=0;k { if(a[i][j]<=a[k][j]) m++; } if(m==M) { printf("第%d行第%d列%4d是鞍点\n",i+1,j+1,a[i][j]); h++; } else continue; } } if(h==0) { printf("没有鞍点"); } else { printf("一共有%d个鞍点",h); } } //第三种解法 #defineN4 inti,j,flag=0; intarr[N][N]; intarr_max(intarr[N][N]); intarr_min(intarr[N][N]); voidmain() { printf("请输入一个四维数组: \n"); for(i=0;i { printf("请输入第%d行的数字: ",i+1); for(j=0;j { scanf("%d",&arr[i][j]); } } for(i=0;i for(j=0;j if(arr_max(arr)&&arr_min(arr)) { printf("鞍点为: %d,在数组的第%d行,第%d列\n",arr[i][j],i+1,j+1); flag=1; } if(! flag) printf("该数组不存在鞍点! \n"); } intarr_max(intarr[N][N]) {intk; for(k=0;k if(arr[i][j] return0; return1; } intarr_min(intarr[N][N]) {intm; for(m=0;m if(arr[i][j]>arr[m][j]) return0; return1; } 2.求出某一个字符在某一字符串中最后一次出现的位置。 //第一种解法 #defineN100 voidmain() { charsen[N]; charch; inti,j; j=0; printf("pleaseenteranarticle: \n"); gets(sen); printf("pleaseenteraletter: \n"); scanf("%c",&ch); for(i=0;i { if(sen[i]==ch) j=i+1; } if(j==0) { printf("Theletterhasnotappearedinthearticle"); } else { printf("Theplacewheretheletter'%c'appearforthelasttimeis: %d",ch,j); } } //第二种解法 voidmain() { chars,str[256]; inti,t=0; printf("input: \n"); gets(str); printf("inputthetarget: \n"); s=getchar(); for(i=strlen(str)-1;i>=0;i--) { if(str[i]==s) { t=i+1; break; } } printf("在第%d位\n",t); } 3.编程输出以下图形,不能只单用printf库函数实现。 * *** ***** ******* ***** *** * //第一种解法 #defineN4 voidmain() { inti,j; for(i=0;i { for(j=0;j printf(""); for(j=0;j<2*i+1;j++) printf("*"); printf("\n"); } for(i=2*N-2;i>=N;i--) { for(j=0;j<2*N-i;j++) printf(""); for(j=0;j<2*(i-N)+1;j++) printf("*"); printf("\n"); } } //第二种解法 voidmain() { inti,j; for(i=-3;i<4;i++) { for(j=-3;j<4;j++) if(fabs(i)+fabs(j)<4) printf("*"); else printf(""); printf("\n"); } } 4.输入一行文字,将其中的每个字符按从小到大的顺序排序后输出。 //第一种解法 voidmain() { charstr[256]; inti,j,n; chars; printf("inputthewords: \n"); gets(str); n=strlen(str); for(i=0;i { for(j=0;j { if(str[j]>str[j+1]) { s=str[j]; str[j]=str[j+1]; str[j+1]=s; } } } puts(str); } //第二种解法 voidmain() { inti,r,j; charstr[1024]; inta[256]; printf("输入字符串\n"); for(i=0;i<256;i++) a[i]=0; gets(str); for(i=0;i a[str[i]]++; printf("字符串从小到大排序: \n"); for(i=0;i<256;i++) { if(a[i]>0) { for(j=0;j printf("%c",i); } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上机 测试 答案