| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 502 人关注过本帖
标题:怎样将数组的四个基本操作集中到一个程序中?高手们帮帮忙!
取消只看楼主 加入收藏
shaohani
Rank: 1
等 级:新手上路
帖 子:9
专家分:5
注 册:2010-12-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
怎样将数组的四个基本操作集中到一个程序中?高手们帮帮忙!
大家好!我刚刚学C语言,老师给我们留了一道关于数组的四个基本操作的程序题,要求是可以多次操作。
我编了一个程序,但是出了一些问题,希望能帮我调试一下,看看应该怎样改。非常感谢!
下面是我编的程序:
#include <stdio.h>
void main()                           /*主函数*/
{
        int a[100000],n,choice1,i;
        int paixu();            /*对排序(paixu)函数进行声明*/
        int charu();            /*对插入(charu)函数进行声明*/
        int shanchu();            /*对删除(shanchu)函数进行声明*/
        int chazhao();           /*对查找(chazhao)函数进行声明*/                     
        char choice2;
loop: printf("请定义执行数组的长度:");
                scanf("%d",&n);
    printf("请输入数组:\n");
    for(i=0;i<n;i++)
    scanf("%d",a);
        printf("%5s*****数组基本操作菜单*****\n");      /*操作菜单*/
        printf("%10s 1-数组的排序\n");
        printf("%10s 2-数组的插入\n");
        printf("%10s 3-数组的删除\n");
        printf("%10s 4-数组的查找\n");
        printf("请输入选项(1/2/3/4):");
        scanf("%d",&choice1);
                switch(choice1)
        {
        case 1:
                paixu(a,n);break;     /*调用排序(paixu)函数*/
        case 2:
                charu(a,n);break;     /*调用插入(charu)函数*/
        case 3:
                shanchu(a,n);break;    /*调用删除(shanchu)函数*/
        case 4:
                chazhao(a,n);          /*调用查找(chazhao)函数*/
        }
        printf("是否继续操作(Y/N)?");               
        scanf("%c",&choice2);
        if(choice2=='Y') goto loop;                     /*程序的循环操作*/
    if(choice2=='N') printf("感谢您的使用!\n");
}
int paixu(int a[],int n)              /*定义排序(paixu)函数*/
{int i,j,t;
for(j=0;j<n-1;j++)
for(i=0;i<n-j;i++)
  if(a>a[i-1])
  {t=a;a=a[i-1];a[i-1]=t;}
  printf("正确的顺序为:");
  for(i=0;i<n;i++)
          printf("%d",a);
}
int charu(int a[],int n)             /*定义插入(charu)函数*/
{int i,k,x;
   printf("请输入需要插入的整数:");
   scanf("%d",&x);
   k=n;
   for(i=0;i<n;i++)
           if(x<a){k=i;break;}
           for(i=n;i>k;i--)
                   a[i-1]=a;
           a[k]=x;
          for(i=0;i<n+1;i++)
          printf("%d",a);
   }
int shanchu(int a[],int n)           /*定义删除(shanchu)函数*/
{int i,j,x,k;
        
printf("请输入需要删除的整数:");
scanf("%d",&x);
i=0;
j=n-1;
while(i<=j)
{   
        k=(i+j)/2;
        if(a[k]==x) break;
        if(a[k]>x) j=k-1;
    if(a[k]<x) i=k+1;
}
if(i>j) printf("您需要删除的数不在数组中!\n");
else
{
        for( ;k<n-1;k++) a[k]=a[k+1];
        for(i=0;i<n-1;i++)
          printf("%d",a);
}

}
int chazhao(int a[],int n)           /*定义查找(chazhao)函数*/
{int i,j,x,k;

printf("请输入需要查找的整数:");
scanf("%d",&x);
i=0;
j=n-1;
while(i<=j)
{
        k=(i+j)/2;
        if(a[k]==x) break;
        if(a[k]>x) j=k-1;
    if(a[k]<x) i=k+1;
}
if(i>j) printf("您需要删除的数不在数组中!\n");
}[/quote]
搜索更多相关主题的帖子: 声明 void include C语言 
2010-12-02 16:37
shaohani
Rank: 1
等 级:新手上路
帖 子:9
专家分:5
注 册:2010-12-1
收藏
得分:0 
回复 2楼 outsider_scu
非常感谢您的批评,谢谢您!
2010-12-02 18:35
快速回复:怎样将数组的四个基本操作集中到一个程序中?高手们帮帮忙!
数据加载中...
 
   



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

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