⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zhongshu.cpp

📁 图书管理系统,基于C++的应用系统开发
💻 CPP
字号:

#include <stdio.h> 
#include<conio.h>
int main()
{
            void dev(int[],int);
            long int n,i;
            int a[10]={0};
            printf("请输入书的页码数n(0<n<10^9):");
            scanf("%d",&n);
            for(i=1;i<=n;i++)
                dev(a,i);
            printf("\n");
            for(i=0;i<10;i++)
                printf("编码为%d的个数:\t\t%-d\n",i,a[i]);
            getch();
}
void dev(int array[],int number)
{
            int a,b,c,d,e,f,g,h;
            a=number/10000000;            /*分离第八位*/
            b=number/1000000%10;          /*分离第七位*/
            c=number/100000%10;           /*分离第六位*/
            d=number/10000%10;            /*分离第五位*/
            e=number%10000/1000;          /*分离第四位*/
            f=number%1000/100;            /*分离第三位*/
            g=number%100/10;              /*分离第二位*/
            h=number%10;                  /*分离第一位*/

            if(a!=0)
                {array[a]++;array[b]++;array[c]++;array[d]++;array[e]++;array[f]++;array[g]++;array[h]++;}
            else if(b!=0)
                {array[b]++;array[c]++;array[d]++;array[e]++;array[f]++;array[g]++;array[h]++;}
            else if(c!=0)
                {array[c]++;array[d]++;array[e]++;array[f]++;array[g]++;array[h]++;}
            else if(d!=0)
                {array[d]++;array[e]++;array[f]++;array[g]++;array[h]++;}
            else if(e!=0)
                {array[e]++;array[f]++;array[g]++;array[h]++;}
            else if(f!=0)
                {array[f]++;array[g]++;array[h]++;}
            else if(g!=0)
                {array[g]++;array[h]++;}
            else if(h!=0)
                {array[h]++;}
}

问题描述: 输油管道问题:某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个有n口油井的油田,从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连。如果给定n口油井的位置,即它们的x坐标(东西向)和y坐标(南北向),应如何确定主管道的最优位置,即使各油井到主管道之间的输油管道长度总和最小的位置?证明可在线性时间内确定主管道的最优位置。

#include<stdio.h>
#include<conio.h>
#include<math.h>
#define N 20
int main()
{
           void path(int [],int);
           int array[N];
           int i,n;
           printf("请输入油井的个数:");
           scanf("%d",&n); 
           for(i=0;i<n;i++)
           {
             printf("请输入第%d个管道的纵坐标:",i+1); 
             scanf("%d",&array[i]); 
           }
           path(array,n);
           getch();
}

void path(int a[],int n)
{
            int i,j,temp,minimum=0,minimum2=0;
            for(i=1;i<=n-1;i++)
              for(j=0;j<=n-2;j++)
                if(a[j]>a[j+1])
                {
                    temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }

               printf("\n管道位置纵坐标为y=%d",a[n/2]);
               for(i=0;i<n;i++)
                 minimum+=(int)fabs(a[i]-a[n/2]);
               printf("\n最优管道长度为:%d",minimum); 
}

问题描述:众数问题:给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数,多重集S中重数称为众数。例如:S={1,2,2,2,3,5}中,多重集S的众数为2,其重数为3;算法设计:对于给定的由n个自然数组成的多重集S,计算S的众数及其重数。

#include<stdio.h>
#include<conio.h>
#define N 30
int main()
{
             void mode(int [],int [],int m);
             int array[N];
             int n,i;
             printf("请输入元素个数:");
             scanf("%d",&n);
             int frequency[N]={0};
             printf("\n请依次输入这%d个元素(逗号隔开):",n);
             for(i=0;i<n;i++)
                scanf("%d,",&array[i]);
             mode(frequency,array,n);
             getch();
}void mode(int freq[],int a[],int n)
{
              void bubbleSort(int b[]);
              int i,j,largest=0,modeValue=0;
              for(i=0;i<n;i++)
                 freq[i]=0;
              for(j=0;j<n;j++)
                 ++freq[a[j]];
        
              for(i=0;i<n;i++)
              {
                 printf("%5d",freq[a[i]]);
                 if(freq[a[i]]>largest)
                 {
                    largest=freq[a[i]];
                    modeValue=a[i];
        
                 }
              }
              printf("\n众数为:%d",modeValue);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -