一道C++的语言程序题 ,高分求。

2024-05-09

1. 一道C++的语言程序题 ,高分求。

I sold one(just the same as you requested) several days ago, if you want to buy, see bellow

一道C++的语言程序题 ,高分求。

2. 求解C语言编程

已知两地的经度分别为σ1、σ2,纬度分别为φ1、φ2,求两地最近距离的公式为:
S=2πRθ/360° (1)
其中θ可由下面的式子求得:
[sin(θ/2)]^2=[sin(φ1-φ2)/2]^2+[sin(σ2-σ1)/2]^2cosφ1cosφ2 (2)
注:1、式中S为球面上任意两点的最短距离(球面距离);
2、θ为两点间的张角,在运用(2)式求θ时,纬度φ和经度σ本身有正负号,通常北纬正,南纬负;东经正,西经负。
3、因不会用上下标,所以式中^2指平方; cosφ1cosφ2、σ2-σ1 、φ1-φ2中的1和和2为下标。
我想你的问题是不知道公式,知道公式后就是C语言做个算术题,这个不用我教了吧。

3. 求解答,用c语言编程


求解答,用c语言编程

4. C语言编程求解

首先列式
1)x+y+z = 8 , x为10环的发数,y为7环的发数,z为5环的发数
在列式
2)10*x+7*y+5*z = 53 
从1)式中得到x=8-y-z ;
带入2)得
80-10*y-10*z+7*y+5*z = 53最终简化后得3*y+5*z = 27,z=(27-3*y)/5 ;
好这下我们可以编程了
 
 
int x, y, z ;
int ret ;
//根据提议猜测y在0到8之间
for ( y=0;y<=8;y++)
{
    //z一定是整数
    if ((27-3*y)%5==0)
    {
        z=(27-3*y)/5 ;
        if ( z8 )
            continue ;
        x=8-z-y ;
        if (x8 )
            continue ;
        printf("10环%d发,7环%d发,5环%d发\n",x,y,z);
    }        
} 
 
没编译过,不过思路是这个思路。

5. C语言编程,求解

代码思路:
一、程序需要四个函数,分别是入口主函数、输入函数、输出函数、排序函数。
二、题目要求按首字母排序,未限制大小写,因此不能直接用字母比大小,需根据大小写求字母差值,用差值比较。
三、字符串排序交换,用函数strcpy。
下面是代码:

#include
#include
#define MM 12//月份个数
#define MS 20//字符串长度
void px(char moms[][MS]);// 排序
void showMM(char moms[][MS]);
void inputMM(char moms[][MS]);//手动输入月份名
int main()
{
    char moms[12][MS]={"January",\
                    "February",\
                    "March",\
                    "April",\
                    "May",\
                    "June",\
                    "July",\
                    "August",\
                    "September",\
                    "October",\
                    "November",\
                    "December"};

    printf("%d个月英文名为:\n",MM);
    showMM(moms);
    px(moms);
    printf("%d个月英文名按首字母升序排序后为:\n",MM);
    showMM(moms);
    inputMM(moms);
    printf("输入后的月份英文名:\n");
    px(moms);
    showMM(moms);

    return 0;
}
void inputMM(char moms[][MS])
{
    int i;
    printf("手动输入%d个月份英文名称(每个名称不超过%d个字符):\n",MM,MS-1);
    for(i=0;i<MM;scanf("%s",moms[i]),i++);
}
void showMM(char moms[][MS])
{
    int i;
    for(i=0;i<MM;printf("%s\n",moms[i]),i++);
    printf("\n");
}
void px(char moms[][MS])
{
    char strTemp[MS]={0};
    int i,j,n1,n2;
    for(i=0;i<MM-1;i++)
        for(j=i+1;j<MM;j++)
        {
            if(moms[i][0]>='A' && moms[i][0]<='Z')n1=moms[i][0]-'A';//大小写识别
            if(moms[i][0]>='a' && moms[i][0]<='z')n1=moms[i][0]-'a';
            if(moms[j][0]>='A' && moms[j][0]<='Z')n2=moms[j][0]-'A';
            if(moms[j][0]>='a' && moms[j][0]<='z')n2=moms[j][0]-'a';
            memset(strTemp,0,MS);
            if(n1>n2)
                strcpy(strTemp,moms[i]),strcpy(moms[i],moms[j]),strcpy(moms[j],strTemp);
        }
}

C语言编程,求解

6. 求解C语言编程题


#include 
#include 
#include 
int Get3Num(int a[],int b[],int n)
{
    int i;
    int sum=0;
    for(i=0;i<n;i++)
    {
        if(a[i]%3==0)
        {
            b[sum] = a[i];
            sum++;
        }
    }
    return sum;
}
int main()
{
    int num[20];
    int num_3[20];
    int i,j,sum;
    srand((unsigned int)time(NULL));
    for(i=0;i<20;i++)
    {
        num[i] = rand()%99+1;
    }
    for(i=0;i<4;i++)
    {
        for(j=0;j<5;j++)
        {
            printf("%d\t",num[5*i+j]);
        }
        printf("\n");
    }
    sum = Get3Num(num,num_3,20);
    if(sum==0)
    {
        printf("NO\n");
    }
    else
    {
        for(i=0;i<sum;i++)
        {
            printf("%d\t",num_3[i]);
        }
    }
}

7. C语言编程题 求解

按照题意,表格使用结构链表实现。其中成员班级或工龄,使用自定义的联合体union(就是题目要求的共用体)。函数异常不做处理,直接抛出,你需要可以在调用时判断处理异常。

#include 
#include 
typedef union info4
{
char cName[10];//班级名称
int wAge;//工龄
}IO4;
typedef struct stInfo
{
int id;//编号
char name[10];// 姓名
int pType;//职业类别:0表示学生,1表示教师
IO4 cwInfo;//对应职业类别的班级或工龄
struct stInfo *next;
}STINFO;
int inputInfo(STINFO **stHead,STINFO **stTail);//输入,调用一次输入一条信息,并生成或加入链表,成功返回1,失败返回0
void prfInfos(STINFO *stHead);// 打印链表
int main()
{
STINFO *stHead=NULL,*stTail=NULL;
int n=4;//测试就输入4个,需要自己改
while(n--)
if(!inputInfo(&stHead,&stTail))
{
printf("异常终止!\n");
return 1;
}
prfInfos(stHead);
return 0;
}
void prfInfos(STINFO *stHead)// 打印链表
{
printf("编号   姓 名   职业 班级\\工龄\n");
while(stHead->next)
{
printf("%d %9s %s",stHead->next->id,stHead->next->name,stHead->next->pType?"教师":"学生");
if(stHead->next->pType)
printf("%9d\n",stHead->next->cwInfo.wAge);
else
printf("%9s\n",stHead->next->cwInfo.cName);
stHead=stHead->next;
}
}
int inputInfo(STINFO **stHead,STINFO **stTail)//输入,调用一次输入一条信息,并生成或加入链表,成功返回1,失败返回0
{
static int id=1;
STINFO *head=*stHead,*tail=*stTail,*stNew=NULL;
stNew=(STINFO *)malloc(sizeof(STINFO));
stNew->pType=-1;
stNew->next=NULL;
if(!stNew)//抛出异常
return 0;
stNew->id=id++;
printf("请输入姓名:"),scanf("%9s",stNew->name);
if(getchar()!='\n')//抛出异常
return 0;
while(stNew->pTypepType>1)
printf("请输入职业编号(0:学生,1:教师):"),scanf("%d",&stNew->pType);
switch(stNew->pType)
{
case 0:printf("请输入学生所在班级名称:");
scanf("%9s",stNew->cwInfo.cName);
if(getchar()!='\n')//抛出异常
return 0;
break;
case 1:printf("请输入教师的工龄:"),scanf("%d",&stNew->cwInfo.wAge);break;
}
if(head==NULL)
head=(STINFO *)malloc(sizeof(STINFO)),head->next=NULL;
if(head->next==NULL)
head->next=stNew;
else
tail->next=stNew;
tail=stNew;
*stHead=head,*stTail=tail;
return 1;
}

C语言编程题 求解

8. 求解C语言编程题。。。

您好。我默认您程序限制时间为1s。您应该是初学者吧……不知道您数学水平如何,我就按照初/高的水平说了。
第一题:
首先要说的是题面描述有误,是所有真因子的和吧……
您可以先枚举一个数字j,我们知道如果j是数字i的因子的话,i一定是j的倍数,所以我们可以再枚举一个倍数关系k,2<=k<=10000/j,这样我们给每个i=j*k加上j的贡献,这个可以开一个数组存下来。最后再从1到10000跑一遍即可。
至于时间复杂度,您如果学过调和级数就会算出来其时间复杂度为O(n*ln(n))。
当然您要是觉得这个时间复杂度还是不够优秀,也是可以O(n)的。
代码:
#include "stdio.h"using namespace std;const int N=1e4+10;int ans[N];int main(){    for (int j=1;j<=10000;++j)        for (int k=2;k<=10000/j;++k)            ans[k*j]+=j;    for (int i=1;i<=10000;++i)        if(ans[i]==i)   printf("%d%c",i,i==10000?'\n':' ');}/*输出:6 28 496 8128*/第二个题:
……这个我就直接贴代码吧……
#include "stdio.h"using namespace std;double a[10];int main(){    for (int i=1;ia[j]) {                double t=a[i];                a[i]=a[j],a[j]=t;            }    for (int i=1;i<=8;++i)    printf("%.8f%c",a[i],i==8?'\n':' ');}/*输出:6 28 496 8128*/