一个关于数组插入的问题~~(程序写到结尾了,实在是想不出来了```)
<P>这体总共3个要点:<br>1.成绩录入,如果用户按任意键就继续要求输入成绩,按n退出。<br><br>2.输出刚才录入的数组.<br><br>3.插入函数,完成可以向一个数组插入的功能.<br><br>已经快完成了,但是最后插入的过程有点搞不清楚状况```<br><br>请高手指教!!<br><br>以下是我写的:<br><br>#include<stdio.h><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<100;i++)<br> {<br> printf("请输入一个整数:");</P><P> scanf("%d",&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<=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<=i;j++)<br>{<br> printf("%d\t",a[j]); <br>}<br>printf("\n");<br>printf("*********************************************\n");<br>printf("请输入要插入的数:");<br>scanf("%d",&x);</P>
<P>do<br>{<br> printf("\n请输入要插入的位置1-%d:",i+1);<br> scanf("%d",&t);<br> if(t>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]
虽然我不知道怎么做,还是顶下 看的迷迷糊糊的<BR>兄弟帮你顶一下拉[em01] <P>哪位高手指教一下吖````<BR><BR>晚上就要交了``</P>
<P>[em09][em09][em09]</P> <P>/*<BR>1. 编写一个成绩录入函数,如果用户按任意键就继续要求输入成绩,按退出。<BR>2. 编写一个数组输出函数,用于输出一个数组<BR>3. 编写一个插入函数,完成可以向一个数组插入的功能<BR>4. 编写主函数通过调用上面定义的函数完成如下图所示的功能:<BR>*/<BR>#include<stdio.h><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<100;i++)<BR> {<BR> printf("请输入一个整数:");<BR> scanf("%d",&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<=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<=i;j++)<BR> {<BR> printf("%d\t",a[j]); <BR> }<BR> printf("\n");<BR> printf("*********************************************\n");<BR> printf("请输入要插入的数:");<BR> scanf("%d",&x);</P>
<P> do<BR> {<BR> printf("\n请输入要插入的位置1-%d:",i+1);<BR> scanf("%d",&t);<BR> if(t>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>=t;k--)<BR> {<BR> a[k]=a[k-1];<BR> a[t-1]=x;<BR> }<BR> for(i=0;i<t+1;i++)<BR> {<BR> printf("%d\t",a[i]); <BR> }<BR> printf("\n");<BR> printf("*********************************************\n");<BR>}<BR> </P>
不懂,是不是把数组元素往后推一位啊<BR> <P>#include<stdio.h><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<l;i++)<BR> {<BR> printf("请输入一个整数、输入n结束:");<BR> scanf("%d",&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<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<=l-i;n++)<BR> { <BR> printf("你还可以插入%d个数,是否插入:y插入,n退出",l-i);<BR> scanf("%d",&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",&x);<BR> do<BR> {<BR> printf("\n请输入要插入的位置1-%d:",i);<BR> scanf("%d",&t);<BR> if(t>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>=t;k--)<BR> {<BR> a[k]=a[k-1];<BR> }<BR>a[t-1]=x;<BR> for(int m=0;m<i;m++)<BR> {<BR> printf("%d\t",a[m]); <BR> }<BR> printf("\n");<BR> printf("*********************************************\n");<BR>}<BR></P> 看的迷迷糊糊的<BR>
页:
[1]
