首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于二维数组的程序 对与组二维字符数组中相同字符的输出解决方案

2012-03-16 
关于二维数组的程序 对与组二维字符数组中相同字符的输出#includestdio.hintmain(){chara[]{ a , b , c

关于二维数组的程序 对与组二维字符数组中相同字符的输出
#include   <stdio.h>  

int   main()  
{  
char   a[]={ 'a ', 'b ', 'c ', 'd ', 'e '};  
char   b[]={ 'i ', 'o ', 'p ', 'd ', 'e ', 'a '};  
char   *pa,*pb;  
int   s=0;
pa=a;  
while   (*pa!= 'e ')  

{
*pa++;  
pb=b;  
while   (*pb!= 'a ')
{
{

*pb++;
}

if   (*pa==*pb)
{  
s++;  
printf( "%c\n ",*pb);
  }
}
}  
printf( "%d\n ",s-1);  
        return   0;
}
这个是一维的
但是将a[]改为a[2][5]={ 'a ', 'b ', 'c ', 'd ', 'e ' 'f ', 'f ', 'g ', 'g '};
b[]改成b[2][8]={ 'i ', 'o ', 'p ', 'd ', 'e ', 'a ', 'f ', 'f ', 'g ', 'k '};
现在应该个怎么改


[解决办法]
a[2][5]={{ 'a ', 'b ', 'c ', 'd ', 'e '}, { 'f ', 'f ', 'g ', 'g '} };
b[2][8]={{ 'i ', 'o ', 'p ', 'd ', 'e ', 'a ', 'f ', 'f '},{ 'g ', 'k '} };

[解决办法]
说说你程序要完成什么功能吧,你那个程序printf( "%d\n ",s-1);为什么s要减一。
[解决办法]
#include <stdio.h>

二维数组在内存中也是顺序存放的,这里可以简单的转换为char指针顺序访问就行了
int main()
{
char a[2][5]={ 'a ', 'b ', 'c ', 'd ', 'e ', 'f ', 'f ', 'g ', 'g '};
char b[2][8]={ 'i ', 'o ', 'p ', 'd ', 'e ', 'a ', 'f ', 'f ', 'g ', 'k '};
char *pa,*pb;
int s=0;
pa=(char*)a; //转换char*
while (*pa!= 'e ')

{
*pa++;
pb=(char*)b; //转换char*
while (*pb!= 'a ')
{
{

*pb++;
}

if (*pa==*pb)
{
s++;
printf( "%c\n ",*pb);
}
}
}
printf( "%d\n ",s-1);
return 0;
}

热点排行