if(a[i][col]>a[k][col]){
flag=0;
break;
}
if(flag){
row=i;
break;
}
}
if(flag)
printf("a[%d][%d]=%d\n",row,col,a[row][col]);
else
printf("NO\n");
return0;
}
7.字符串替换。
输入一个以回车结束的字符串(少于80个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串。
试编写相应程序。
原字母对应字母
A→Z
B→Y
C→X
D→W
……
X→C
Y→B
Z→A
解答:
#include<>
intmain(void)
{
inti;
charch,str[80];
printf("Inputastring:
");
i=0;
while((ch=getchar())!
='\n'){
str[i++]=ch;
}
str[i]='\0';
for(i=0;str[i]!
='\0';i++)
if(str[i]<='Z'&&str[i]>='A')
str[i]='A'+'Z'-str[i];
printf("Afterreplaced:
");
for(i=0;str[i]!
='\0';i++)
putchar(str[i]);
putchar('\n');
return0;
}
8.字符串转换成十进制整数。
输入一个以字符”#”结束的字符串滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。
如果过滤后字符串的首字符为”-”,代表该数是负数。
试编写相应程序。
解答:
#include<>
intmain(void)
{
inti,j,k;
charhexad[80],str[80];
longnumber;
printf("Enterastring:
");
i=0;
while((str[i]=getchar())!
='#')
i++;
str[i]='\0';
k=0;
for(i=0;str[i]!
='\0';i++)
if(str[i]=='-'||str[i]>='0'&&str[i]<='9'||str[i]>='a'&&str[i]<='f'||str[i]>='A'&&str[i]<='F')
hexad[k++]=str[i];
hexad[k]='\0';
j=1;
if(hexad[0]=='-'){
for(k=1;hexad[k]!
='\0';k++)
if(hexad[k]!
='-')
hexad[j++]=hexad[k];
}
else{
j=0;
for(k=0;hexad[k]=!
'\0';k++)
if(hexad[k]!
='-')
hexad[j++]=hexad[k];}
printf("Newstring:
");
for(i=0;hexad[i]!
='\0';i++)
putchar(hexad[i]);
printf("\n");
number=0;
for(i=0;hexad[i]!
='\0';i++){
if(hexad[i]>='0'&&hexad[i]<='9')
number=number*16+hexad[i]-'0';
elseif(hexad[i]>='A'&&hexad[i]<='F')
number=number*16+hexad[i]-'A'+10;
elseif(hexad[i]>='a'&&hexad[i]<='f')
number=number*16+hexad[i]-'a'+10;
}
if(hexad[0]='-')
printf("Number=%ld\n",-number);
else
printf("Number=%ld\n",number);
return0;
}