| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10160 人关注过本帖, 1 人收藏
标题:求助 几道C++、C语言题目
只看楼主 加入收藏
a984837776
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-6-15
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:20 
求助 几道C++、C语言题目
定义学生类(Student),实现相应功能 【C++:类与对象】
题目描述
定义一个学生类(Student),要求如下:
(1)数据成员:圴为private权限
name(姓名),字符串(长度不超过20个字符)
age(年龄),整型
num(学号),字符串(长度不超过20个字符)
sc1(第一学年平均成绩)、sc2(第二学年平均成绩)、sc3(第三学年平均成绩)、sc4(第四学年平均成绩),圴为0-100的整数
(2)成员函数:均为public权限
各数据成员对应的set、get函数。

   在main()函数中定义一个学生对象st,然后得到输入的数据,再调用各数据成员对应的set()方法来设置对象的数据成员值,最后调用相关的get()计算、输出结果。
输入
姓名,年龄,学号,第一学年平均成绩,第二学年平均成绩,第三学年平均成绩,第四学年平均成绩。
各部分内容之间均用单个英文空格隔开,无多余空格。
输出
一行,按顺序输出:姓名,年龄,学号,四年平均成绩(向下取整)。
各部分内容之间均用单个英文逗号","隔开,无多余空格。
样例输入
Tom 18 1440701201 80 80 90 70
样例输出
Tom,18,1440701201,80

简单阶乘计算【C语言编程基础】
题目描述
本题要求实现一个计算非负整数阶乘的简单函数。
函数接口定义:
int Factorial( const int N );
其中N是用户传入的参数,其值不超过12。如果N是非负整数,则该函数必须返回N的阶乘,否则返回0。
裁判测试程序样例:
#include <stdio.h>
int Factorial( const int N );
int main()
{
    int N, NF;
               
    scanf("%d", &N);
    NF = Factorial(N);
    if (NF)  printf("%d! = %d\n", N, NF);
    else printf("Invalid input\n");
    return 0;
}
/* 你的代码将被嵌在这里 */
输入
整数N
输出
N的阶乘

样例输入
5
样例输出
5! = 120

支票面额【C语言编程基础】
题目描述
一个采购员去银行兑换一张y元f分的支票,结果出纳员错给了f元y分。采购员用去了n分之后才发觉有错,于是清点了余额尚有2y元2f分,问该支票面额是多少?
输入
输入在一行中给出小于100的正整数n。
输出
在一行中按格式y.f输出该支票的原始面额。如果无解,则输出No Solution。
样例输入
输入样例1:
23
样例输出
25.51

打印九九口诀表【C语言编程基础】
题目描述
下面是一个完整的下三角九九口诀表:
1*1=1
1*2=2  2*2=4
1*3=3  2*3=6  3*3=9
1*4=4  2*4=8   3*4=12  4*4=16
1*5=5  2*5=10  3*5=15  4*5=20  5*5=25
1*6=6  2*6=12  3*6=18  4*6=24  5*6=30  6*6=36
1*7=7  2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49
1*8=8  2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64
1*9=9  2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81
本题要求对任意给定的一位正整数N,输出从1*1到N*N的部分口诀表。
输入
输入在一行中给出一个正整数N(1≤N≤9)。
输出
输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。
样例输入
4
样例输出
1*1=1   
1*2=2   2*2=4   
1*3=3   2*3=6   3*3=9   
1*4=4   2*4=8   3*4=12  4*4=16

单词长度【C语言编程基础】
题目描述
你的程序要读入一行文本,其中以空格分隔为若干个单词,以.结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如it's算一个单词,长度为4。注意,行中可能出现连续的空格;最后的.不计算在内。
输入
输入在一行中给出一行文本,以.结束
提示:用scanf("%c",...);来读入一个字符,直到读到.为止。
输出
在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。
样例输入
It's great to see you here.
样例输出
输出样例:
4 5 2 3 3 4

猴子选大王【C语言编程基础】
题目描述
一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?
输入
输入在一行中给一个正整数N(≤1000)。
输出
在一行中输出当选猴王的编号。
样例输入
11
样例输出
7

删除字符串中的子串【C语言编程基础】
题目描述
输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。
输入
输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。
输出
在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。
样例输入
Tomcat is a male ccatat
cat
样例输出
Tom is a male

字符串的冒泡排序【C语言编程基础】
题目描述
我们已经知道了将N个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的K(<N),输出扫描完第K遍后的中间结果序列。
输入
输出冒泡排序法扫描完第KKK遍后的中间结果序列,每行包含一个字符串。
输出
输出冒泡排序法扫描完第K遍后的中间结果序列,每行包含一个字符串。
样例输入
6 2
best
cat
east
a
free
day
样例输出
best
a
cat
day
east
free

字符串循环左移【C语言编程基础】
题目描述
输入一个字符串和一个非负整数N,要求将字符串循环左移N次。
输入
输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。
输出
在一行中输出循环左移N次后的字符串。
样例输入
Hello World!
2
样例输出
llo World!He

说反话-加强版【C语言编程基础】
题目描述
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入
测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。
输出
每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。
样例输入
Hello World   Here I Come
样例输出
Come I Here World Hello

有理数加法【C语言编程基础】
题目描述
本题要求编写程序,计算两个有理数的和。
输入
输入在一行中按照a1/b1 a2/b2的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。
输出
在一行中按照a/b的格式输出两个有理数的和。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子
样例输入
1/3 1/6
样例输出
1/2

通讯录的录入与显示【C语言编程基础】
题目描述
通讯录中的一条记录包含下述基本信息:朋友的姓名、出生日期、性别、固定电话号码、移动电话号码。
本题要求编写程序,录入N条记录,并且根据要求显示任意某条记录。
输入
输入在第一行给出正整数N(≤10);随后N行,每行按照格式姓名 生日 性别 固话 手机给出一条记录。其中姓名是不超过10个字符、不包含空格的非空字符串;生日按yyyy/mm/dd的格式给出年月日;性别用M表示“男”、F表示“女”;固话和手机均为不超过15位的连续数字,前面有可能出现+。
在通讯录记录输入完成后,最后一行给出正整数K,并且随后给出K个整数,表示要查询的记录编号(从0到N−1顺序编号)。数字间以空格分隔。
输出
对每一条要查询的记录编号,在一行中按照姓名 固话 手机 性别 生日的格式输出该记录。若要查询的记录不存在,则输出Not Found。
样例输入
3
Chris 1984/03/10 F +86181779452 13707010007
LaoLao 1967/11/30 F 057187951100 +8618618623333
QiaoLin 1980/01/01 M 84172333 10086
2 1 7
样例输出
LaoLao 057187951100 +8618618623333 F 1967/11/30
Not Found

有理数均值【C语言编程基础】
题目描述
本题要求编写程序,计算N个有理数的平均值。
输入
输入第一行给出正整数N(≤100);第二行中按照a1/b1 a2/b2 …的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数;如果是负数,则负号一定出现在最前面。
输出
在一行中按照a/b的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。
样例输入
4
1/2 1/6 3/6 -5/10
样例输出
1/6

复数四则运算【C语言编程基础】
题目描述
本题要求编写程序,计算2个复数的和、差、积、商。
输入
输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。
输出
分别在4行中按照(a1+b1i) 运算符 (a2+b2i) = 结果的格式顺序输出2个复数的和、差、积、商,数字精确到小数点后1位。如果结果的实部或者虚部为0,则不输出。如果结果为0,则输出0.0。
样例输入
2 3.08 -2.04 5.06
样例输出
(2.0+3.1i) + (-2.0+5.1i) = 8.1i
(2.0+3.1i) - (-2.0+5.1i) = 4.0-2.0i
(2.0+3.1i) * (-2.0+5.1i) = -19.7+3.8i
(2.0+3.1i) / (-2.0+5.1i) = 0.4-0.6i

整数分解为若干项之和【C语言编程基础】
题目描述
将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,…。编程求出正整数N的所有整数分解式子。
输入
每个输入包含一个测试用例,即正整数N (0<N≤30)。
输出
按递增顺序输出N的所有整数分解式子。递增顺序是指:对于两个分解序列N1={n1,n2,⋯}和N2={m1,m2,⋯},若存在i使得n1=m1,⋯,ni=mi,但是ni+1<mi+1,则N1序列必定在N2序列之前输出。每个式子由小到大相加,式子间用分号隔开,且每输出4个式子后换行。
样例输入
7
样例输出
7=1+1+1+1+1+1+1;7=1+1+1+1+1+2;7=1+1+1+1+3;7=1+1+1+2+2
7=1+1+1+4;7=1+1+2+3;7=1+1+5;7=1+2+2+2
7=1+2+4;7=1+3+3;7=1+6;7=2+2+3
7=2+5;7=3+4;7=7

数列求和-加强版【C语言编程基础】
题目描述
给定某数字A(1≤A≤9)以及非负整数N(0≤N≤1000000),求数列之和S=A+AA+AAA+⋯+AA⋯(N个A)。例如A=1, N=3时,S=1+11+111=123。
输入
输入数字A与非负整数N。
输出
输出其N项数列之和S的值。
样例输入
1 3
样例输出
123
搜索更多相关主题的帖子: private public C语言 字符串 姓名 
2017-06-15 00:30
peng880610
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:128
专家分:123
注 册:2017-3-29
收藏
得分:10 
#include <stdio.h>
int Factorial(const int N)
{
    int i=2;
    float NF=1;
    if(N==0 ||N==1)
    {
        return 1;
    }
    else
    {
        while(i<=N)
        {
            NF=NF*i;
            i++;
        }
        return NF;
    }
}
int main()
{
    int N;
    float NF;
    printf("请输入一个正整数: ");
    scanf("%d",&N);
    NF=Factorial(N);
    printf("N的阶乘为: %f",NF);
    return 0;
}
2017-06-15 01:24
GBH1
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:112
专家分:510
注 册:2017-6-13
收藏
得分:10 
乘法表这种入门级的你上网随便一搜都有。这种问题在这里提问,只能说明你足够懒,坐享其成,不太好
2017-06-15 10:29
a984837776
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-6-15
收藏
得分:0 
回复 3楼 GBH1
只是太多事忙了
2017-06-15 11:00
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
很久没有练习算法了~抽了其中一题来练练手~当然我没有按照题目输出格式要求~那个可以自己改~

程序代码:
/*

整数分解为若干项之和【C语言编程基础】
题目描述
将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,…。编程求出正整数N的所有整数分解式子。

输入
每个输入包含一个测试用例,即正整数N (0<N≤30)。

输出
按递增顺序输出N的所有整数分解式子。递增顺序是指:对于两个分解序列N1={n1,n2,?}和N2={m1,m2,?},
若存在i使得n1=m1,?,ni=mi,但是ni+1<mi+1,则N1序列必定在N2序列之前输出。每个式子由小到大相加,式子间用分号隔开,
且每输出4个式子后换行。

样例输入
7

样例输出
7=1+1+1+1+1+1+1;7=1+1+1+1+1+2;7=1+1+1+1+3;7=1+1+1+2+2
7=1+1+1+4;7=1+1+2+3;7=1+1+5;7=1+2+2+2
7=1+2+4;7=1+3+3;7=1+6;7=2+2+3
7=2+5;7=3+4;7=7

*/

#include<stdio.h>
#define MAX_LEN 30
void fun(int s[],int len);
void Print(int s[],int len);  
int check(int s[],int len);
int main()
{
    int i=0;
    int k=9;
    int s[MAX_LEN+2]={0};

    for (i=0;i<k+1;++i)
        s[i]=1;

    fun(s,k);

    return 0;
}

void Print(int s[],int len)
{
    int i=0;
    for (i=0;i<len;++i)
        printf("%-3d",s[i]);

    puts("");
}

int check(int s[],int len)
{
    int i=0;

    for (i=0;i<len-1;++i)
        if (s[i]>s[i+1])
            return 0;

    return 1;
}

void fun(int s[],int len)
{


    if (s[len-1]>3&&s[len-1]-s[len-2]>=2)
    {
        s[len]=s[len-1]-2;
        s[len-1]=2;

        fun(s,len+1);

        s[len-1]+=s[len];
    }

    if (check(s,len))
        Print(s,len);

    if (len==1)
        return ;

    if (s[len-2]==1)
    {
        s[len-2]=s[len-1]+1;

        fun(s,len-1);
    }
    else if (s[len-1]-s[len-2]>=2)
    {
        --s[len-1];
        ++s[len-2];

        fun(s,len);
    }
}





[此贴子已经被作者于2017-6-16 22:57编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-15 17:56
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
弄了这么久才弄出来~突然我都不舍得删了~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-15 17:57
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
https://bbs.bccn.net/viewthread.php?tid=473833&extra=&page=1

这题我有点印象~我还笑我那时还停留在理解层面上没有真正弄出来~~~~
 
当然方法上还是有些出入的~还是要好好理解一下~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-15 18:18
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
#include <stdio.h>
 
int
main( void )
{
    int n, m, t;
    int sum;
    int ix;
 
    n = 1;
    t = n;
    m = 3;
 
    for( ix = 0,sum = 0, n = 0; m > ix; ++ix )
    {
        n = n * 10 + 1;
        sum += n;
    }  
 
    printf( "%d", sum );
 
    return 0;
}



[此贴子已经被作者于2017-6-15 18:44编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-15 18:40
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 8楼 renkejun1942
里面有一题绵里藏针~看看就知道了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-15 18:43
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
再送一题C++的~好像我那个版本.c找不到头文件complex.h
代码摘自网上~

程序代码:
#include <iostream>
#include <complex>
#include <cstdlib>
#include <limits>
using namespace std;


int main()
{
    complex<double> c1,c2;
    c1=complex<double>(3,4);
    c2=complex<double>(2,0);
    cout<<c1.real()<<"  "<<c1.imag()<<endl;
    cout<<c1*c2<<endl;//乘法 
    cout<<abs(c1)<<endl;//绝对值 
    cout<<norm(c1)<<endl;
    cout<<arg(c1)<<endl;//
    cout<<arg(c2)<<endl;//
    system("PAUSE");
    return 0;
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-15 18:54
快速回复:求助 几道C++、C语言题目
数据加载中...
 
   



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

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