新手-代码本是用来解决在一个链表中插入一个元素,但是运行后结果总是与本意不同。亲们帮帮忙,看看怎么错了。

问题描述

代码本是用来解决在一个链表中插入一个元素,但是运行后结果总是与本意不同。亲们帮帮忙,看看怎么错了。

#include
using namespace std;
struct List //定义一个结构体表示线性表
{
int num;
struct List *next;
};
int main()
{
List la,*p,*head,*p1,*pm; //定义线性表la

                                           //把表a的首元素地址赋给p和head
int n=1,m,t;
cout<<"请输入表a中的第"<<1<<"个元素"<<endl;
cin>>la.num;
p=&la;head=&la;p1=&la;
cout<<"是否继续输入,继续就输入1,不继续就输入0"<<endl;
cin>>t;
if(t!=1&&t!=0)
{
    cout<<"输入错误,请重新输入"<<endl;
    cout<<"是否继续输入,继续就输入1,不继续就输入0"<<endl;
    cin>>t;
}
if(t)
do
{
    p->next =new List;
    p=p->next ;
    cout<<"请输入表a中的第"<<n+1<<"个元素"<<endl;
    cin>>p->num;
    cout<<"是否继续输入,继续就输入1,不继续就输入0"<<endl;
    cin>>t;
    if(t!=1&&t!=0)
    {
        cout<<"输入错误,请重新输入"<<endl;
        cout<<"是否继续输入,继续就输入1,不继续就输入0"<<endl;
        cin>>t;
    }
    n++;
}while(t);
p->next =new List;
p=head;
cout<<"总共有"<<n<<"个元素"<<endl;
cout<<"表中元素为"<<endl;
for(int i=1;i<=n;i++)
{
    cout<<p->num <<" ";
    p=p->next;
}
p=head;
cout<<"表a中的元素已经输入完成,请输入要插入新元素的位置数m"<<endl;
cin>>m;
pm=new List;
cout<<"输入要插入的新元素"<<endl;
cin>>pm->num;
pm->next =p+m;
(p+m-1)->next =pm ;
cout<<p->num <<' '<<(p+m-1)->num <<' '<<pm->num<<endl;
for(int j=1;j<=n;j++)
{
    cout<<p1->num<<' ';
    p1=p1->next;
}
return 0;

}

解决方案

    1 #include <iostream>
    2 using namespace std;
    3 struct List //露篓?一赂枚鹿?卤铆??卤铆
    4 {
    5     int num;
    6     struct List *next;
    7 };
    8 int main()
    9 {
 10     List la,*p,*head,*p1,*pm; //露篓???卤铆
 11                                                //掳驯铆??陋?碌?路赂鲁赂酶ead
 12     int n=1,m,t;
 13     cout<<"input "<<1<<"item"<<endl;
 14     cin>>la.num;
 15     p=&la;head=&la;p1=&la;
 16
 17     cout<<"1 go on, 0 terminal"<<endl;
 18     cin>>t;
 19     if(t!=1&&t!=0)
 20     {
 21         cout<<"err, try again:"<<endl;
 22         cout<<"1 go on, 0 terminal"<<endl;
 23         cin>>t;
 24     }
 25
 26     if(t)
 27     {
 28         do
 29         {
 30             p->next =new List;
 31             p=p->next ;
 32             cout<<"input"<<n+1<<"item"<<endl;
 33             cin>>p->num;
 34             cout<<"1 go on, 0 terminal"<<endl;
 35             cin>>t;
 36             if(t!=1&&t!=0)
 37             {
 38                 cout<<"err, try again:"<<endl;
 39                 cout<<"1 go on, 0 terminal"<<endl;
 40                 cin>>t;
 41             }
 42             n++;
 43         }while(t);
 44
 45         // p->next =new List;
 46
 47         p=head;
 48         cout<<"total"<<n<<"item"<<endl;
 49         cout<<"contents:"<<endl;
 50         for(int i=1;i<=n;i++)
 51         {
 52             cout<<p->num <<" ";
 53             p=p->next;
 54         }
 55         p=head;
 56         cout<<"insert m"<<endl;
 57         cin>>m;
 58         pm=new List;
 59         cout<<"insert num"<<endl;
 60         cin>>pm->num;
 61         // pm->next =p+m;
 62         // (p+m-1)->next =pm ;
 63         struct List *pre = p;
 64         struct List *cur = p;
 65         for( int i = 0; i <= m; i++ )
 66         {
 67             if( i == m )
 68             {
 69                 pm->next = cur;
 70                 pre->next = pm;
 71             }
 72             pre = cur;
 73             cur = cur->next;
 74         }
 75
 76         n++;      // ?要录?
 77         cout<<p->num <<' '<<(p+m-1)->num <<' '<<pm->num<<endl;
 78
 79         for(int j=1;j<=n;j++)
 80         {
 81             cout<<p1->num<<' ';
 82             p1=p1->next;
 83         }
 84     }
 85     return 0;
 86 }
时间: 2024-08-03 12:43:23

新手-代码本是用来解决在一个链表中插入一个元素,但是运行后结果总是与本意不同。亲们帮帮忙,看看怎么错了。的相关文章

移动开发-pad开发在一个DIV中载入一个html文件问题

问题描述 pad开发在一个DIV中载入一个html文件问题 我的iframe及外层div代码 <div id=""iframe_div_1"" class=""iframe_div"" style=""width: 100%;""> <iframe name=""ifraRight"" id=""ifraRig

图片加载-怎么在一个对话框中单击一个按钮后在另一个对话框中的picture控件中显示一张bmp格式的图片

问题描述 怎么在一个对话框中单击一个按钮后在另一个对话框中的picture控件中显示一张bmp格式的图片 我是大一学生,在用mfc做一个员工管理系统,要求在一个对话框的list control 控件中选择一条员工信息,点击一下"显示全部信息"按钮后,弹出一个对话框,这个对话框上的picture控件能显示这个人对应的照片.这个人对应的照片我放在资源文件夹下面.其他我都会,就是照片显示这方面我不知道应该怎么做?各位大神求指教. 解决方案 一个对话框调用另一个对话框的控件值 解决方案二: h

求解决-导入一个android项目运行后出现界面混乱怎么解决?

问题描述 导入一个android项目运行后出现界面混乱怎么解决? 解决方案 看着好像是在低分辨率的模拟器上用了只有高分辨率图片的项目,看看资源图片里面的资源有没有你这个模拟器对应的图片

js-求一个JS代码,可以自动打开点击页面中某按钮元素

问题描述 求一个JS代码,可以自动打开点击页面中某按钮元素 前面使用的自动打开连接代码,但按钮没有连接,是腾讯的JS 需要能自动打开点击页面内图标按钮 解决方案 前面使用的自动打开连接代码 但按钮没有连接,是腾讯的JS 需要直接点击才能准确跳转到QQ,以及手机QQ 解决方案二: 小意思,只需要把这个扣扣交谈的链接内嵌到你的页面里面,当访问你的网站时,自动打开扣扣交谈链接并弹出对话框 解决方案三: <iframe style="display:none;" src="te

为什么不允许删除循环单链表中最后一个结点?如何解决?

问题描述 为什么不允许删除循环单链表中最后一个结点?如何解决? /*****************************************************/ /* 函数功能:建立一个空的循环单链表 / / 函数参数:无 / / 函数返回值:指向node类型变量的指针 / / 文件名:clnkinit.c,函数名init() / /****************************************************/ node init() /建立一个空的循环

代码初步写好后,可能我们想达到的效果是:往集合lists的子集合tempList中添加一个元素6,而原有的集合保持不变。

问题描述 List<Object> lists = new ArrayList<Object>(); lists.add("1"); lists.add("2"); lists.add("3"); lists.add("4"); List<Object> tempList = lists.subList(2, lists.size()); tempList.add("6"

完美解决SQL server2005中插入汉字变成问号的问题_MsSql

关于SQL server2005中插入汉字变成问号的解决办法 1.右击你所建的数据库,点击"属性",选择"选项"并点击.将其中的排序规则设置为:Chinese_PRC_CI_AS(选择下拉列表框即可设置),然后"确定". 2.在表中将你的汉字字段的数据类型设置为nvarchar型或ntext型,设置前最好先将表中的数据全部删除.(不要使用varchar或text型,因为它们只会继续使你的数据乱码). 3.设置好后,关闭服务器,再重新启动,就可生效

php中向数组中插入一元素程序代码

 代码如下 复制代码 <?php /** * 逆序二维数组插入一元素 * * @author WadeYu * @date 2012-05-30 */ $aSorted = array( array(1, 100), array(2, 90), array(3, 80), array(4, 70), array(5, 60), array(6, 50), array(7, 40), array(8, 40), array(9, 40), array(10, 20), ); $aInsert =

完美解决SQL server2005中插入汉字变成问号的问题

关于SQL server2005中插入汉字变成问号的解决办法 1.右击你所建的数据库,点击"属性",选择"选项"并点击.将其中的排序规则设置为:Chinese_PRC_CI_AS(选择下拉列表框即可设置),然后"确定". 2.在表中将你的汉字字段的数据类型设置为nvarchar型或ntext型,设置前最好先将表中的数据全部删除.(不要使用varchar或text型,因为它们只会继续使你的数据乱码). 3.设置好后,关闭服务器,再重新启动,就可生效