***********结果是8,为什么啊?我晕。。。。。。

yuetiantia 2003-10-20 11:25:07
1.Main()
{ static int a[]={1,3,5,7},*p[3]={a+2,a+1,a},**q=p;
printf(“%d”,*(p[0]+1)+**(q+2));
}
结果是8,为什么啊?我晕。。。。。。



2.下面哪三处错了啊?
程序输入再5格字符串中求最小字符串并输出结果。
#include <string.h>
#include <stdio.h>
main()
{ char *name[5]={“windows”,”Word”,”Excel”,”Foxpro”,”Visual Basic”};
char temp;
int i;
temp=name[0];
for (i=1;i<5;i++)
if(temp>*name[i]>0)
temp=name[i];
printf(“%s\n”,*temp);
}


救命啊。。。


...全文
50 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
DESL 2003-10-21
  • 打赏
  • 举报
回复
怎么个比较法是每个字母比较还是字母个数
DESL 2003-10-21
  • 打赏
  • 举报
回复
第二道题出的也不严密呀!!!能不能说详细一些看不明白.
QQ:47724660(编辑专用号.聊天吾进)
DESL 2003-10-21
  • 打赏
  • 举报
回复
Main()
{ static int a[]={1,3,5,7},*p[3]={a+2,a+1,a},**q=p;
printf(“%d”,*(p[0]+1)+**(q+2));
}
/* 关键在这部*(p[0]+1)这部 咱先说p[0]定义指针*p[3] 所以p[0]的地址就是a+2 */
/* a+2又等于 a[2]的地址 也就等于5 */
/* p[0]+1 也就是a[3]的地址 也就等于7 */
/* 所以*(p[0]+1)+**(q+2));就等于8了*/
TianGuangZao 2003-10-21
  • 打赏
  • 举报
回复
我太粗心了。
if(temp>*name[i]>0)
应该是
while ( strcmp(temp, name[i]) > 0)
TianGuangZao 2003-10-21
  • 打赏
  • 举报
回复
sorry.
for (i=1;i<5;i++)
=>
for ( i = 1; i < 6; i++)
TianGuangZao 2003-10-21
  • 打赏
  • 举报
回复
{ char *name[5]={“windows”,”Word”,”Excel”,”Foxpro”,”Visual Basic”};
=>
{ char *name[6]={“windows”,”Word”,”Excel”,”Foxpro”,”Visual Basic”};

char temp;
=>
char *temp;

for (i=1;i<5;i++)
=>
for ( i = 0; i < 6; i++)

if(temp>*name[i]>0)
=>
if(strcmp(temp, name[i]))

printf(“%s\n”,*temp);
=>
printf(“%s\n”, temp);

没验证程序。

yuetiantia 2003-10-21
  • 打赏
  • 举报
回复
TianGuangZao(天光早) 题目上说只有三个错误啊,你怎么找了这么多,倒。。。
lyff8neo 2003-10-20
  • 打赏
  • 举报
回复
天,指针,我头昏了,11月份开始复习希望一个月搞定!

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧