C++的几道编程题(急用!!!明天考试要用)

来源:百度知道 编辑:UC知道 时间:2024/06/25 04:56:12
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。
很急很急吖,明天就要考试了,谢谢,要带上些方法说明吖,方法好的话给你另加分吖

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;//没找到
}

我也是新手 我慢慢写~~