编程论坛's Archiver

Angel_SK 发表于 2007-11-17 02:20

一个关于数组插入的问题~~(程序写到结尾了,实在是想不出来了```)

<P>这体总共3个要点:<br>1.成绩录入,如果用户按任意键就继续要求输入成绩,按n退出。<br><br>2.输出刚才录入的数组.<br><br>3.插入函数,完成可以向一个数组插入的功能.<br><br>已经快完成了,但是最后插入的过程有点搞不清楚状况```<br><br>请高手指教!!<br><br>以下是我写的:<br><br>#include&lt;stdio.h&gt;<br>int a[100],i,j,k;<br>void shuchu();<br>void charu();<br>void main()<br>{<br>char c;<br><br>        for(i=0;i&lt;100;i++)<br>  {<br>   printf("请输入一个整数:");</P>
<P>      scanf("%d",&amp;a[i]);</P>
<P>   fflush(stdin);<br>  <br>         printf("是否继续输入?按任意键继续;按n退出!\n");<br>   <br>   c=getchar();<br>   <br>   if(c=='n')<br>    break;<br>  }<br>shuchu();<br>charu();</P>
<P>}<br>//以上是1.成绩录入,如果用户按任意键就继续要求输入成绩,按n退出。<br>void shuchu()<br>{<br><br>printf("*********************************************");<br>printf("\n你输入的内容如下:\n");<br>for(j=0;j&lt;=i;j++)<br>{<br>  printf("%d\t",a[j]); <br>}<br>printf("\n");<br>printf("*********************************************\n");<br><br>}<br>//以上是2.输出刚才录入的数组.<br>//下面是插入:<br>void charu()<br>{<br>int x,t;<br>printf("插入:\n");<br>printf("*********************************************\n");<br>printf("插入前:\n");<br>for(j=0;j&lt;=i;j++)<br>{<br>  printf("%d\t",a[j]); <br>}<br>printf("\n");<br>printf("*********************************************\n");<br>printf("请输入要插入的数:");<br>scanf("%d",&amp;x);</P>
<P>do<br>{<br>     printf("\n请输入要插入的位置1-%d:",i+1);<br>     scanf("%d",&amp;t);<br>     if(t&gt;i+1)<br>  printf("输入不合法,请按要求输入!");<br>  else<br>   break;<br>}<br>while(1);<br>printf("\n插入后:\n");<br>printf("*********************************************\n");<br>//程序一直运行到这里都没问题```但是下面我就写不出来了```<br>}</P><br>[em04][em04]
[align=right][color=#000066][此贴子已经被作者于2007-11-17 2:22:08编辑过][/color][/align]

scjin 发表于 2007-11-17 09:12

虽然我不知道怎么做,还是顶下

pingguoling 发表于 2007-11-17 09:32

看的迷迷糊糊的<BR>兄弟帮你顶一下拉[em01]

Angel_SK 发表于 2007-11-17 09:59

<P>哪位高手指教一下吖````<BR><BR>晚上就要交了``</P>

<P>[em09][em09][em09]</P>

Angel_SK 发表于 2007-11-21 11:47

<P>/*<BR>1.    编写一个成绩录入函数,如果用户按任意键就继续要求输入成绩,按退出。<BR>2.    编写一个数组输出函数,用于输出一个数组<BR>3.    编写一个插入函数,完成可以向一个数组插入的功能<BR>4.    编写主函数通过调用上面定义的函数完成如下图所示的功能:<BR>*/<BR>#include&lt;stdio.h&gt;<BR>int a[100],i,j,k;<BR>void shuchu();<BR>void charu();<BR>void main()<BR>{<BR>    char c;<BR>    <BR>        for(i=0;i&lt;100;i++)<BR>        {<BR>            printf("请输入一个整数:");<BR>            scanf("%d",&amp;a[i]);</P>
<P>            fflush(stdin);<BR>        <BR>            printf("是否继续输入?按任意键继续;按n退出!\n");<BR>            <BR>            c=getchar();<BR>            <BR>            if(c=='n')<BR>                break;<BR>        }<BR>    shuchu();<BR>    charu();</P>
<P>}<BR>//以上是1.成绩录入,如果用户按任意键就继续要求输入成绩,按n退出。<BR>void shuchu()<BR>{<BR>    <BR>    printf("*********************************************");<BR>    printf("\n你输入的内容如下:\n");<BR>    for(j=0;j&lt;=i;j++)<BR>    {<BR>        printf("%d\t",a[j]);    <BR>    }<BR>    printf("\n");<BR>    printf("*********************************************\n");<BR>    <BR>}<BR>//以上是2.输出刚才录入的数组.<BR>//下面是插入:<BR>void charu()<BR>{<BR>    int x,t;<BR>    printf("插入:\n");<BR>    printf("*********************************************\n");<BR>    printf("插入前:\n");<BR>    for(j=0;j&lt;=i;j++)<BR>    {<BR>        printf("%d\t",a[j]);    <BR>    }<BR>    printf("\n");<BR>    printf("*********************************************\n");<BR>    printf("请输入要插入的数:");<BR>    scanf("%d",&amp;x);</P>
<P>    do<BR>    {<BR>        printf("\n请输入要插入的位置1-%d:",i+1);<BR>        scanf("%d",&amp;t);<BR>        if(t&gt;i+1)<BR>        printf("输入不合法,请按要求输入!");<BR>        else<BR>            break;<BR>    }<BR>    while(1);<BR>    printf("\n插入后:\n");<BR>    printf("*********************************************\n");</P>
<P>    //程序一直运行到这里都没问题```但是下面我就写不出来了```<BR>    <BR>for(k=i+1;k&gt;=t;k--)<BR>    {<BR>       a[k]=a[k-1];<BR>       a[t-1]=x;<BR>    }<BR>    for(i=0;i&lt;t+1;i++)<BR>    {<BR>        printf("%d\t",a[i]);    <BR>    }<BR>    printf("\n");<BR>    printf("*********************************************\n");<BR>}<BR>    </P>

独行之 发表于 2007-11-21 12:06

不懂,是不是把数组元素往后推一位啊<BR>

yzzfei 发表于 2007-11-21 17:46

<P>#include&lt;stdio.h&gt;<BR>const int l=100;<BR>int a[l],i,j,k;<BR>void shuchu();<BR>void charu();<BR>void main()<BR>{<BR>     char c;<BR>     for(i=0;i&lt;l;i++)<BR>        {<BR>            printf("请输入一个整数、输入n结束:");<BR>            scanf("%d",&amp;a[i]);<BR>            c=getchar();<BR>            fflush(stdin);<BR>            if(i==l-1)<BR>                printf("已经输入%d个数,结束输入!",l);<BR>            if(c=='n')<BR>               break;<BR>        }<BR>    shuchu();<BR>    charu();<BR>}<BR>//以上是1.成绩录入,如果用户按任意键就继续要求输入成绩,按n退出。<BR>void shuchu()<BR>{<BR>    <BR>    printf("\n*********************************************");<BR>    printf("\n你输入的内容如下:\n");<BR>    for(j=0;j&lt;i;j++)<BR>    {<BR>        printf("%d\t",a[j]);    <BR>    }<BR>    printf("\n");<BR>    <BR>}<BR>//以上是2.输出刚才录入的数组.<BR>//下面是插入:<BR>void charu()<BR>{<BR>    char c;<BR>    int x,t;<BR>    for(int n=0;n&lt;=l-i;n++)<BR>    {    <BR>    printf("你还可以插入%d个数,是否插入:y插入,n退出",l-i);<BR>    scanf("%d",&amp;x);<BR>    c=getchar();<BR>    fflush(stdin);<BR>    if(c=='n')<BR>      break;<BR>    else<BR>        if(c=='y')<BR>        {<BR>            i++;<BR>            printf("请输入要插入的成绩:");<BR>            scanf("%d",&amp;x);<BR>             do<BR>             {<BR>                printf("\n请输入要插入的位置1-%d:",i);<BR>                scanf("%d",&amp;t);<BR>                if(t&gt;l)<BR>                printf("输入不合法,请按要求输入!");<BR>                else<BR>                break;<BR>             } while(1);<BR>        }</P>
<P>    }<BR>    <BR>    printf("\n插入后:\n");<BR>    printf("*********************************************\n");</P>
<P>    //程序一直运行到这里都没问题```但是下面我就写不出来了```<BR>    <BR>for(k=i-1;k&gt;=t;k--)<BR>    {<BR>       a[k]=a[k-1];<BR>    }<BR>a[t-1]=x;<BR>    for(int m=0;m&lt;i;m++)<BR>    {<BR>        printf("%d\t",a[m]);    <BR>    }<BR>    printf("\n");<BR>    printf("*********************************************\n");<BR>}<BR></P>

taiwai123 发表于 2007-11-21 19:33

看的迷迷糊糊的<BR>

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.