一个c++中cout的问题(在线等)

程序是这样的,可是cout根本没有任何作用,一个字都不输出。#include<stdio.h>#include<stdlib.h>#include<string.h>#i... 程序是这样的,可是cout根本没有任何作用,一个字都不输出。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream.h>

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define N 100
typedef int STATUS;
typedef int ELEMTYPE;

typedef struct{
char character;
int amount;
}WORD;

int COUNT(char * str,WORD * string){
int i,j,zishu=0;
for(zishu=0;str[0]!='\0';zishu++){
string[zishu].character =str[0];
for(i=0;str[0]!='\0';)
if(string[zishu].character == str[i]){
string[zishu].amount++;
for(j=i;str[0]!='\0';j++)
str[j]=str[j+1];
}
else i++;

}
string[zishu].character ='\0';
for(i=0;i<zishu;i++){
cout<<string[i].amount<<endl;
}
return zishu;
}

void main(){
char str[10] ;
char st ; int zishu;
int i=0;
WORD string[N];
cout<<"请输入文字:";
while((st=getchar())!='\n')
{
str[i]=st;
i++;
}
str[i]='\0';
zishu=COUNT(str,string);
cout<<zishu<<endl;
}
展开
 我来答
155280118
2007-12-12
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
实在不知道什么问题,但是我按照我的想法做了一下
输出以字母p结束
我作出来的能输入和显示
但是前提是不能调用你的函数(^_^得不偿失哈)
可能你的函数也有点问题
void main(){
char str[10] ;
char st ; int zishu;
int i=0,j=1;
WORD string[N];
cout<<"请输入文字:";
cin>>str[0];
while(!(str[i]=='p'))
{
cin>>str[j];
i++;
j++;
}
int m=0;
while(!(str[m]=='p'))
{
cout<<str[m];
m++;
}
//zishu=COUNT(str,string);
//cout<<zishu<<endl;
}
stone_dongdong
2007-12-13 · TA获得超过2853个赞
知道大有可为答主
回答量:1636
采纳率:0%
帮助的人:1027万
展开全部
for(zishu=0;str[0]!='\0';zishu++){
string[zishu].character =str[0];
for(i=0;str[0]!='\0';)
if(string[zishu].character == str[i]){
string[zishu].amount++;
for(j=i;str[0]!='\0';j++)
str[j]=str[j+1];
}
这里,不知道你for循环终止语句写 str[0] != '\0',是啥意思
按道理应该是 str[i] != '\0',才对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
皇家救星1985
2007-12-12 · TA获得超过1131个赞
知道大有可为答主
回答量:1579
采纳率:0%
帮助的人:1671万
展开全部
程序越界破坏了栈导致程序崩溃了

估计在for(zishu=0;str[0]!='\0';zishu++){
这个循环里,你仔细找找吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jason_Cai
2007-12-13 · TA获得超过251个赞
知道小有建树答主
回答量:232
采纳率:0%
帮助的人:216万
展开全部
有无数个错误

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>

using namespace std;

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define N 100
typedef int STATUS;
typedef int ELEMTYPE;

typedef struct
{
char character;
int amount;
}WORD;

int COUNT(char * str,WORD * string)
{
int i = 0, j = 0, k = 0, zishu=0;

for(zishu = 0; str[zishu]!='\0'; zishu++)
{
string[zishu].character = str[zishu];
string[zishu].amount = 1;

for(i = zishu + 1; str[i]!='\0';)
{
if(string[zishu].character == str[i])
{
string[zishu].amount++;

for(j = i; str[j]!='\0';j++)
{
str[j]=str[j+1];
}
}
else
{
i++;
}
}

}

string[zishu].character ='\0';

for(i=0;i<zishu;i++)
{
cout<< string[i].amount<<endl;
}

return zishu;
}

void main()
{
char str[10] ;
char st ; int zishu;
int i=0;
WORD string[N];
cout<<"请输入文字:";
while((st=getchar())!='\n')
{
str[i]=st;
i++;
}
str[i]='\0';
zishu=COUNT(str,string);
cout<<zishu<<endl;
getchar();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qiaovvqian
2007-12-13
知道答主
回答量:46
采纳率:0%
帮助的人:0
展开全部
for(zishu=0;str[0]!='\0';zishu++)
这是一个死循环
str[i] != '\0' 就对了
低级马虎错误 呵呵~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式