标题:一个关于数组插入的问题~~(程序写到结尾了,实在是想不出来了```)
只看楼主
Angel_SK
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-10-24
 问题点数:0 回复次数:7 
一个关于数组插入的问题~~(程序写到结尾了,实在是想不出来了```)

这体总共3个要点:
1.成绩录入,如果用户按任意键就继续要求输入成绩,按n退出。

2.输出刚才录入的数组.

3.插入函数,完成可以向一个数组插入的功能.

已经快完成了,但是最后插入的过程有点搞不清楚状况```

请高手指教!!

以下是我写的:

#include<stdio.h>
int a[100],i,j,k;
void shuchu();
void charu();
void main()
{
char c;

for(i=0;i<100;i++)
{
printf("请输入一个整数:");

scanf("%d",&a[i]);

fflush(stdin);

printf("是否继续输入?按任意键继续;按n退出!\n");

c=getchar();

if(c=='n')
break;
}
shuchu();
charu();

}
//以上是1.成绩录入,如果用户按任意键就继续要求输入成绩,按n退出。
void shuchu()
{

printf("*********************************************");
printf("\n你输入的内容如下:\n");
for(j=0;j<=i;j++)
{
printf("%d\t",a[j]);
}
printf("\n");
printf("*********************************************\n");

}
//以上是2.输出刚才录入的数组.
//下面是插入:
void charu()
{
int x,t;
printf("插入:\n");
printf("*********************************************\n");
printf("插入前:\n");
for(j=0;j<=i;j++)
{
printf("%d\t",a[j]);
}
printf("\n");
printf("*********************************************\n");
printf("请输入要插入的数:");
scanf("%d",&x);

do
{
printf("\n请输入要插入的位置1-%d:",i+1);
scanf("%d",&t);
if(t>i+1)
printf("输入不合法,请按要求输入!");
else
break;
}
while(1);
printf("\n插入后:\n");
printf("*********************************************\n");
//程序一直运行到这里都没问题```但是下面我就写不出来了```
}


[此贴子已经被作者于2007-11-17 2:22:08编辑过]

搜索更多相关主题的帖子: 结尾 void 体总 
2007-11-17 02:20
scjin
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-10-31
得分:0 
虽然我不知道怎么做,还是顶下
2007-11-17 09:12
pingguoling
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-10-28
得分:0 
看的迷迷糊糊的
兄弟帮你顶一下拉
2007-11-17 09:32
Angel_SK
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-10-24
得分:0 

哪位高手指教一下吖````

晚上就要交了``

2007-11-17 09:59
Angel_SK
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-10-24
得分:0 

/*
1. 编写一个成绩录入函数,如果用户按任意键就继续要求输入成绩,按退出。
2. 编写一个数组输出函数,用于输出一个数组
3. 编写一个插入函数,完成可以向一个数组插入的功能
4. 编写主函数通过调用上面定义的函数完成如下图所示的功能:
*/
#include<stdio.h>
int a[100],i,j,k;
void shuchu();
void charu();
void main()
{
char c;

for(i=0;i<100;i++)
{
printf("请输入一个整数:");
scanf("%d",&a[i]);

fflush(stdin);

printf("是否继续输入?按任意键继续;按n退出!\n");

c=getchar();

if(c=='n')
break;
}
shuchu();
charu();

}
//以上是1.成绩录入,如果用户按任意键就继续要求输入成绩,按n退出。
void shuchu()
{

printf("*********************************************");
printf("\n你输入的内容如下:\n");
for(j=0;j<=i;j++)
{
printf("%d\t",a[j]);
}
printf("\n");
printf("*********************************************\n");

}
//以上是2.输出刚才录入的数组.
//下面是插入:
void charu()
{
int x,t;
printf("插入:\n");
printf("*********************************************\n");
printf("插入前:\n");
for(j=0;j<=i;j++)
{
printf("%d\t",a[j]);
}
printf("\n");
printf("*********************************************\n");
printf("请输入要插入的数:");
scanf("%d",&x);

do
{
printf("\n请输入要插入的位置1-%d:",i+1);
scanf("%d",&t);
if(t>i+1)
printf("输入不合法,请按要求输入!");
else
break;
}
while(1);
printf("\n插入后:\n");
printf("*********************************************\n");

//程序一直运行到这里都没问题```但是下面我就写不出来了```

for(k=i+1;k>=t;k--)
{
a[k]=a[k-1];
a[t-1]=x;
}
for(i=0;i<t+1;i++)
{
printf("%d\t",a[i]);
}
printf("\n");
printf("*********************************************\n");
}

2007-11-21 11:47
独行之
Rank: 2
等 级:论坛游民
帖 子:60
专家分:30
注 册:2007-6-19
得分:0 
不懂,是不是把数组元素往后推一位啊
2007-11-21 12:06
yzzfei
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-11-21
得分:0 

#include<stdio.h>
const int l=100;
int a[l],i,j,k;
void shuchu();
void charu();
void main()
{
char c;
for(i=0;i<l;i++)
{
printf("请输入一个整数、输入n结束:");
scanf("%d",&a[i]);
c=getchar();
fflush(stdin);
if(i==l-1)
printf("已经输入%d个数,结束输入!",l);
if(c=='n')
break;
}
shuchu();
charu();
}
//以上是1.成绩录入,如果用户按任意键就继续要求输入成绩,按n退出。
void shuchu()
{

printf("\n*********************************************");
printf("\n你输入的内容如下:\n");
for(j=0;j<i;j++)
{
printf("%d\t",a[j]);
}
printf("\n");

}
//以上是2.输出刚才录入的数组.
//下面是插入:
void charu()
{
char c;
int x,t;
for(int n=0;n<=l-i;n++)
{
printf("你还可以插入%d个数,是否插入:y插入,n退出",l-i);
scanf("%d",&x);
c=getchar();
fflush(stdin);
if(c=='n')
break;
else
if(c=='y')
{
i++;
printf("请输入要插入的成绩:");
scanf("%d",&x);
do
{
printf("\n请输入要插入的位置1-%d:",i);
scanf("%d",&t);
if(t>l)
printf("输入不合法,请按要求输入!");
else
break;
} while(1);
}

}

printf("\n插入后:\n");
printf("*********************************************\n");

//程序一直运行到这里都没问题```但是下面我就写不出来了```

for(k=i-1;k>=t;k--)
{
a[k]=a[k-1];
}
a[t-1]=x;
for(int m=0;m<i;m++)
{
printf("%d\t",a[m]);
}
printf("\n");
printf("*********************************************\n");
}

2007-11-21 17:46
taiwai123
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-10-28
得分:0 
看的迷迷糊糊的

2007-11-21 19:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-186623-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.101392 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved