一个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;
} 展开
#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;
} 展开
展开全部
实在不知道什么问题,但是我按照我的想法做了一下
输出以字母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;
}
输出以字母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;
}
展开全部
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',才对
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',才对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序越界破坏了栈导致程序崩溃了
估计在for(zishu=0;str[0]!='\0';zishu++){
这个循环里,你仔细找找吧
估计在for(zishu=0;str[0]!='\0';zishu++){
这个循环里,你仔细找找吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有无数个错误
#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();
}
#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();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(zishu=0;str[0]!='\0';zishu++)
这是一个死循环
str[i] != '\0' 就对了
低级马虎错误 呵呵~
这是一个死循环
str[i] != '\0' 就对了
低级马虎错误 呵呵~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询