填空题

以下程序的功能是;从键盘输入一行字符串,将输入字符串中连续的数字作为一个整数,整数前的"+"和"_"分别表示正整数和负整数。依次取出相关的连续数字字符,并转换为整数后存放到整型数组中。函数change_int()实现从字符串中依次取出整数并放入数组中
例如;输入字符串:"sf-123 abc+456 df7890j",则输出-123 456 7890
[程序](4分)
#include
void change_int(())
{
int flag;
count=0;
while(*p){
flag=1; //flag=1为正整数,flag=-1为负整数
while((*p<’0’||*p>’9’)&& ())p++;
if(*p==’-’){
flag=-1;
p++;
}
else if(*p==’+’) p++;
if(*p>=’0’ && *p<=’9’){
int num=0;
while(()){
num=num*10+*p-’0’;
p++;
}
num= () ;
b[count]=num;
count++;
}
}
}
void main(void)
{
char str[400];
int a[20],n;
cout<<"请输入一个含有数字的字符串;\n";
cin.getline(str,400);
change_int(str,a,n); ,
cout<<"输入字符串中共有"<个整数,它们分别是;\n";
for(int i=0;i
cout<
if((i+1)%4==0) cout<<’\n’;
}
cout<
}

【参考答案】

char *p,int b[],int &count;*p!=’+’ && *p!=’-’或*p!=’-’;*p>=’0......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

填空题
以下程序的功能是;实现一个队列的简单管理,每一个队列结点包括一个学生的基本信息(姓名,数学、物理和英语成绩)。成员函数add()建立一个新结点,并将该结点加入队尾。成员函数remove()从队首取下一个结点,并通过参数将所取结点中的数据返回。成员函数Print()输出队列中各个结点的值。当队列非空时,析构函数~Queue()依次删除队列上的各个结点。 [程序] #include #include class Node{ public: Node(char nam[],int m,int p,int e) {strcpy(name,nam);math=m;phy=p;eng=e;} Node(){} private: char name[10]; 姓名 int math,phy,eng; 数学,物理,英语成绩 Node *nextItem; friend class Queue; }; class Queue{ public: Queue(){front=NULL;back=NULL;) ~Queue(); void remove(char *,int &,int &,int &); void add(char [],int,int,int); int is_empty(){return back==NULL;} 输出队列中各个结点的值 void Print() { Node *p=front; while(p){ cout p=p->nextItem; } } private: Node *front; Node *back; }; Queue的成员remove()实现从队列头取下一个结点,并返回该结点的值 void Queue::remove(char n[],int &m,int &p,int &e) { Node *pFront; 指向头结点的临时指针 pFront=front; strcpy(n,front->name); m=front->math;p=front->phy;e=front->eng; () ; delete pFront; } Queue的函数成员add()实现在队列中增加一个项,即增加一个结点 void Queue::add(char n[],int m,int P,int e) { Node *pNew=new Node; strcpy(pNew->name,n); pNew->math=m;pNew->phy=p;pNew->eng=e; pNew->nextItem=NULL; if(front==NULL) (); else{ () ; back=pNew; } } Queue::~Queue() { Node *p=front,*q; while(p!=NULL){ (); delete P; p=q; } } 主函数完成对各成员函数的简单测试 void main(void) { Queue q1; int m,p,e; char str[10]; cout<< 输入队列中学生的姓名、数学、物理,英语成绩(以0结束); ; cin>>str>>m>>p>>e; while(strcmp(str, O )!=0){ q1.add(str,m,P,e); cout<< 输入队列中一个项的值(以0结束); ; cin>>str>>m>>p>>e; } cout<< 队列中各项为; n ; q1.Print (); q1.remove(str,m,p,e); cout<< 队列中移下项的值为; < cout<< 队列中各项为; n ; q1.Print(); }