
C++的几道编程题(急用!!!明天考试要用)
20.编写函数输出以下形状的图形,其中构成图形的符号和输出的行数通过参数传送。################21.编写一个函数countdigit(longk,intc...
20.编写函数输出以下形状的图形,其中构成图形的符号和输出的行数通过参数传送。
#######
#####
###
#
21.编写一个函数countdigit(long k,int count〔10〕),求出整数k中0~9各数字出现的次数,结果存放于数组count〔〕中。
22.有类型说明:struct node{int date;node *next};函数int delx(node *head,int x);的功能是从以head为表头的单链表中删除date等于x的结点。如果成功删除,函数返回1;如果找不到x结点,函数返回0。设计delx。
很急很急吖,明天就要考试了,谢谢,要带上些方法说明吖,方法好的话给你另加分吖 展开
#######
#####
###
#
21.编写一个函数countdigit(long k,int count〔10〕),求出整数k中0~9各数字出现的次数,结果存放于数组count〔〕中。
22.有类型说明:struct node{int date;node *next};函数int delx(node *head,int x);的功能是从以head为表头的单链表中删除date等于x的结点。如果成功删除,函数返回1;如果找不到x结点,函数返回0。设计delx。
很急很急吖,明天就要考试了,谢谢,要带上些方法说明吖,方法好的话给你另加分吖 展开
3个回答
展开全部
20.
void draw(int n)//n表示行数
{
int i,j;
for (i=n;i>=1;i--)
{
for (j=1;j<=n-i;j++) cout<<' ';//我估计你是个对称的三角形,所以前边有空格
for (j=1;j<=2*i-1;j++) cout<'#';//输出#
cout<<endl;//一行输出完毕
}
}
21.
void countdigit(long k,int count[])
{
int i;
for (i=0;i<10;i++) count[i]=0;//数组要清零,否则结果是错的
while (k!=0)
{
i=k%10;//对10取余取最低位
k/=10;//k消去最低位
count[i]++;
}
}
22.
int delx(node* head,int x)
{
bool found=false;//bool变量为真表示找到,否则没找到
while (head->next!=NULL)//head指向要查找节点的上一个节点,当head->next为NULL表示链表查找完毕
{
if ((head->next->data)==x)//找到一个
{
found=true;//将found置为真,即找到了
node* p=head->next;//暂时标记删除节点的位置
head->next=p->next;//指针修改,使得他跳过值为x的节点
delete p;//删除
}
else head=head->next;//不等x则找下一个
}
if (found) return 1;//找到
else return 0;//没找到
}
void draw(int n)//n表示行数
{
int i,j;
for (i=n;i>=1;i--)
{
for (j=1;j<=n-i;j++) cout<<' ';//我估计你是个对称的三角形,所以前边有空格
for (j=1;j<=2*i-1;j++) cout<'#';//输出#
cout<<endl;//一行输出完毕
}
}
21.
void countdigit(long k,int count[])
{
int i;
for (i=0;i<10;i++) count[i]=0;//数组要清零,否则结果是错的
while (k!=0)
{
i=k%10;//对10取余取最低位
k/=10;//k消去最低位
count[i]++;
}
}
22.
int delx(node* head,int x)
{
bool found=false;//bool变量为真表示找到,否则没找到
while (head->next!=NULL)//head指向要查找节点的上一个节点,当head->next为NULL表示链表查找完毕
{
if ((head->next->data)==x)//找到一个
{
found=true;//将found置为真,即找到了
node* p=head->next;//暂时标记删除节点的位置
head->next=p->next;//指针修改,使得他跳过值为x的节点
delete p;//删除
}
else head=head->next;//不等x则找下一个
}
if (found) return 1;//找到
else return 0;//没找到
}
展开全部
我也是新手 我慢慢写~~
1.
void aa(int b)
{int i,j;
for(i=b*2-1;i>0;i-=2) //确定第一行‘#’个数 开始循环
for(j=0;j<=i;j++)
{cout<<'#';
if(j==i)cout<<endl;
}
}
2.
void countdigit(long k,int count[10])
{int i;
if(k<<0) k=k*-1
do
{i=k%10;k=k/10;
*count[i]++ //形参是数组名 是地址
}while(k==0)
} //形参数组改变 实参数组也改变 不用返回
3.
int delx(node *head,int x)
{node *p=NULL;
if(head->date==x)//要删除的是头节点
{p=head;head=head->next;//链头指向下一节点,头节点脱链
return(1);
}
else
{for(node *temp=head;temp->next;temp=temp->next)//顺链查找
if(temp->next->date==x)
{p=temp->next;
temp->next=p->next;//前后连接
return(1);
break;
}
}
return(0);
}
终于写完了 如果又错请指教
1.
void aa(int b)
{int i,j;
for(i=b*2-1;i>0;i-=2) //确定第一行‘#’个数 开始循环
for(j=0;j<=i;j++)
{cout<<'#';
if(j==i)cout<<endl;
}
}
2.
void countdigit(long k,int count[10])
{int i;
if(k<<0) k=k*-1
do
{i=k%10;k=k/10;
*count[i]++ //形参是数组名 是地址
}while(k==0)
} //形参数组改变 实参数组也改变 不用返回
3.
int delx(node *head,int x)
{node *p=NULL;
if(head->date==x)//要删除的是头节点
{p=head;head=head->next;//链头指向下一节点,头节点脱链
return(1);
}
else
{for(node *temp=head;temp->next;temp=temp->next)//顺链查找
if(temp->next->date==x)
{p=temp->next;
temp->next=p->next;//前后连接
return(1);
break;
}
}
return(0);
}
终于写完了 如果又错请指教
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fzbzchenxi的答案正确,
如果第一题不要求等腰,去掉输出空格一行就行了。
如果第一题不要求等腰,去掉输出空格一行就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询