标题:这个有错吗?
只看楼主
sunnvya
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1094
专家分:0
注 册:2005-11-23
 问题点数:0 回复次数:14 
这个有错吗?
#include <stdio.h>
int main()
{int n,j,i=0,count=0;
char str[71];
char *p;
char **q=0;
scanf("%d",&n);
while(count<n)
{ scanf("%s",str);
p=str;
while(*p!='\0')
{p++;i++;}
if(i>70) return 0;
p--;
for(j=0;j<i;j++)
{*q[count]=*p;q[count]++;p--;}
count++;
}
for(i=0;i<n;i++)
{printf("%s\n",q[i]);}
getch();
return 0;
}
编译连接正常,运行不行!

[此贴子已经被作者于2006-5-4 15:31:47编辑过]

搜索更多相关主题的帖子: include return count 
2006-05-04 15:25
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
得分:0 
你要说你这是什么啊

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-04 15:32
saddvx
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-5-2
得分:0 

这个要实现什么功能呢


2006-05-04 15:38
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
得分:0 
以下是引用sunnvya在2006-5-4 15:25:00的发言:
#include <stdio.h>
int main()
{int n,j,i=0,count=0;
char str[71];
char *p;
char **q=0;
scanf("%d",&n);
while(count<n)
{ scanf("%s",str);
p=str;
while(*p!='\0')
{p++;i++;}
if(i>70) return 0;
p--;
for(j=0;j<i;j++)
{*q[count]=*p;q[count]++;p--;}
count++;
}
for(i=0;i<n;i++)
{printf("%s\n",q[i]);}
getch();
return 0;
}
编译连接正常,运行不行!

这位朋友想法挺好,意图我也看明白了:你是想通过二级指针**q实现n个字符串的逆序存储。然而你存在一个根本性的错误观点:把二级指针与二维数组混为一谈了。实际上,不管几级指针都只是个空架子,只有当它们指向某种“存储实体”时才能发挥效用。


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-04 16:03
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
得分:0 
以下是引用sunnvya在2006-5-4 15:25:00的发言:
#include <stdio.h>
int main()
{int n,j,i=0,count=0;
char str[71];
char *p;
char **q=0;
scanf("%d",&n);
while(count<n)
{ scanf("%s",str);
p=str;
while(*p!='\0')
{p++;i++;}
if(i>70) return 0;
p--;
for(j=0;j<i;j++)
{*q[count]=*p;q[count]++;p--;}  /*这有问题,还没有指向谁,就赋值,会出现不可意料的错误*/
count++;
}
for(i=0;i<n;i++)
{printf("%s\n",q[i]);}
getch();
return 0;
}
编译连接正常,运行不行!

改成q[count]=p;就没有问题了,不过,我不知道您要表达什么中心思想?


对不礼貌的女生收钱......
2006-05-04 16:04
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
得分:0 

用指针申请一个空间,再指向这个空间可以解决。
如果您是要按4楼的想法实现这个程序目的的话。


对不礼貌的女生收钱......
2006-05-04 16:09
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
得分:0 
,字符串逆转还非要使用二级指针,这不拿大炮大蚊子吗,库函数直接就实现了

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-04 16:13
sunnvya
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1094
专家分:0
注 册:2005-11-23
得分:0 
带有空格的一行字符串

http://www. 第二站>>>提供源码下载
2006-05-04 16:21
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
得分:0 
回复:(sunnvya)这个有错吗?
/*
根据最小改动原则,偶帮您改了一下程序,不知是否符合兄台本意?
测试数据:
输入
5
123.456
map
ink
flag
2.718
输出
654.321
pam
kni
galf
817.2
*/
#include<stdio.h>
#include<conio.h>
int main()
{ int n,j,i=0,count=0;
char str[71];
char rev[10][71];//////
char *p;
char *qs[10]; //////
//// char **q=0;
char **q=qs;///////////
for(i=0;i<10;i++)
qs[i]=rev[i];//////////
scanf("%d",&n);
if(n>10)return 0;//////
while(count<n)
{ scanf("%s",str);
p=str;
i=0;////////////
while(*p!='\0')
{ p++;i++; }
if(i>70)return 0;
p--;
for(j=0;j<i;j++)
{ ////*q[count]=*p;
*(*q+j)=*p;/////////////////
////q[count]++;
p--;
}
*(*q+j)='\0';//////////////////
count++;
q=qs+count;
}
for(i=0;i<n;i++)
{
printf("%s\n",qs[i]);//////////
}
getch();
return 0;
}

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-04 16:35
sunnvya
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1094
专家分:0
注 册:2005-11-23
得分:0 
3
Frankly, I don't think we'll make much
money out of this scheme.
madam I'm adam
你输入这个看看,他有空格的

http://www. 第二站>>>提供源码下载
2006-05-04 16:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-61843-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019492 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved