| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2631 人关注过本帖
标题:求助!!!谁帮我把这几个题目做一下啊,做好的话把程序代码发到我的邮箱67 ...
取消只看楼主 加入收藏
煌的天空
Rank: 1
来 自:福建三明
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-1-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
求助!!!谁帮我把这几个题目做一下啊,做好的话把程序代码发到我的邮箱675268599@qq.com
老师要求用c语言做,题目附件在这
编程训练题.rar (18.65 KB)

1.成绩与等级 (编程训练题)

Description
编写一个程序,输入一个学生的成绩,输出相应的等级。其中,成绩大于等于90分输出”A”,80-89输出“B”,70-79输出“C”,60-69输出“D”,60以下输出“E”,要求输入分数的值在0-100之间,如果所给的成绩不在0-100(包括0和100两个边界)这个范围内,则输出“Error”。
Input
有多组测试数据,你的程序必须读到EOF为止。每组测试数据占一行,对应一个成绩,该成绩在-1000到1000之间。
Ouput
输出该成绩所对应的等级,如果该分数不在0-100(包括0和100)之间,输出"Error"。
Sample Input
70
-10
90
0
Sample Output
C
Error
A
E







2.风暴机器人(编程训练题)
Description
最近嵌入式工作室引进了一批“风暴”系列机器人,它们全身都装满了传感器,如光敏传感器、烟雾传感器、红外传感器等。因此,它们看起来是那么的智能,当它们在地面行走时,如果前方有障碍物,它就会换个方向尝试是否可以行走。为了简化编程,我们把机器人看作在一个N*M的网格中行走,且机器人只能沿上、下、左、右四个方向行走,在这N*M的网格中,我们在其中L个网格上放障碍物,放有障碍物的格子表示机器人不能通过这个表格。机器人起始时位于网格a(p, q)中,它必须找出一条通向目的地b(r, s)的路。现在,请你帮助这个“风暴”机器人找出所有路径中的最短路径吧。
Input
本题有多组输入数据,你必须处理到EOF为止。每组数据的第一行有3个正整数N,M,L,(2<=N,M<=10, 0<=L<=10)分别表示网格的行数,列数和障碍物数。接下来的L行中,每行2个正整数,表示障碍物所在的行号和列号(行列号从1开始)。最后的2行,每行也有2个正整数,分别表示起始位置a所处的方格(p, q)和目的地b所处的方格(r, s)。(1≤p,r≤n; 1≤q,s≤m; a,b两点确保不同)。
Ouput
对于每组数据,如果机器人能从起始位置a行走到目的地b,则输出两行,第一行表示最短路长度;第二行表示所有不同的最短路数。如果机器人不能从起始位置a行走到目的地b,输出“No Solution!”(不包括引号)。
Sample Input
8 8 3
3 3
4 5
6 6
2 1
7 7
2 2 2
1 2
2 1
1 1
2 2
 
Sample Output
11
96
No Solution!



3.抓小偷 (编程训练题)
Description
最近商场小偷猖獗,有三个时间段小偷必来,侦探开始从录像中寻找小偷,录像中的人用大写字母A,B,…..Z表示。
Input
输入有多组测试数据,每一组测试数据以n开始(n<=26),接下来有三行,每一行有n个数据,数据之间用空格隔开,代表这个时间段录像中的人,n=0表示输入结束。
Ouput
对于每一组数据首先输出Case #i:i表示第i组测试数据(i从1开始),然后输出所有可能是小偷的人(即三个时间段都出现的人,按照字典顺序输出)。
Sample Input
4
A C D F
C F M N
A M C F
0
 
Sample Output
Case #1: C F
 
Hint
注意: 输出时的":"已经改为半角的
 


4.老师提问谁 (编程训练题)
Description
有位老师讲评试卷时总要提问第2名和倒数第2名的同学,给出按座号的一个班的成绩,你要告诉大家,老师要提问谁?
Input
输入有多组测试数据,对于每一个测试案例,第一行是n(10<n<2000),表示这个班级的学生数,接下来的这一行是按照学号排序(1到n)的学生成绩(0到100分),n=0表示输入结束。
Ouput
对于每一组测试数据,输出老师要提问谁(分数相同时, 输出学号最小的.)
Sample Input
10
90 80 70 60 85 95 100 99 70 81
10
60 70 71 72 73 74 75 76 77 78
0
 
Sample Output
8 3
9 2



5.公路网 (编程训练题)
Description
有n个村庄要建造公路,现在为了节省资金,要求任意两个村庄之间要能到达(不一定直接到达),由于任意两个村庄不一定要建公路,现在给你可以建公路的村庄之间的距离,请你编程计算最少需要多少资金才能满足(资金用总长度来表示)
Input
输入有多组数据,对于每一组数据第一行包括n,m,n表示村庄数,m表示公路数,(0<n<100,0<=m<=1000),接下来有m行数据a b c ,表示从a村庄到b村庄的距离为c(同样b也可以到达a)(0<a,b<=n,0<c<100)。村庄编号从1到n。n=0表示输入结束。
Ouput
对于每一组测试数据,输出一个整数m表示最少的资金
Sample Input
1 0
2 1
1 2 17
3 3
1 2 7
2 3 8
1 3 9
0
 
Sample Output
0
17
15


6.魔兽争霸(编程训练题)
Description
wwh很爱玩魔兽争霸,在游戏中,有很多种类的装备,每一种装备需要花费一定数量的金币购买,不同的装备有不同的攻击值。现在的问题是,给你一定数量的金币和提供一些装备(每种装备数量不限),如何去安排你的金币购买装备,使得你的攻击值最大。
Input
第一行一个整数T,表示一共有T组测试样例。接下来的T块,开始两个整数G和U(0<G,U<=10000),表示你的金币数量和提供选择的装备,然后U行,每行两个整数,表示该种装备的攻击值和价格。
Ouput
对于每组测试数据,输出一行,你能得到的最大攻击值。
Sample Input
2
200 2
100 60
75 36
400 4
120 100
200 120
65 35
240 120
 
Sample Output
375
785



7.村民相会(编程训练题)
Description
居住在A星球上的人把居住处用完全二叉树的方式连接,并从根结点向下依次用1,2,3,…N(2<=N<=100)编号。问居住在第i和第j结点处的居民,见面一次至少要走几段路。
 
Input
有多组测试数据,你的程序必须读到EOF为止. 对于每组数据,第一行两个整数N,M, N表示房子总数,M表示询问数(1<=M<=100)。接下来的M行, 每行两个整数i, j.
Ouput
对于每个询问, 输出单独一行, 表示从住房i到住房j最少需要做几段路.
Sample Input
10 2
6 7
9 10
7 1
4 7
 
Sample Output
2
4
4
 
Hint
对于第一组数据:
10 2分别表示, 共10个节点(如上图), 一共两个询问, 接下来将有两行, 每行两个整数i, j
如6 7, 表示询问从6出发, 到达节点7最少需要走几段路(即需要移动几个节点). 从图中可以看出为4
9 10同上.



8.奖学金(编程训练题)
Description
一个学校有n个班,每班一行数据,按学号顺序排列每人的积分。要从这些学生中选出两名学生获国家奖学金,请你编程实现之。并指出是那个班的那号同学。
Input
以一个整数n开始,代表班级数(0<n<10000)。接着有n行,每一行的第一个数是班级的学生数m(0<m<100),后面m个数是按学号排的每个学生的积分。(学号跟班号都是从1开始算起)。
Ouput
两名获国家奖学金的班级和学号。如果有重名以班号小和学号小的优先。(如果积分相等先按班级小的优先,如果积分跟班级号相等,再按学号小的优先)
Sample Input
3
10 500 540 530 560 550 600 650 678 680 500
15 500 541 540 539 560 550 609 650 678 599 581 488 670 680 501
11 570 544 530 560 550 600 650 678 680 590 554
 
Sample Output
Class 1:9 Class 2:14



9.a+b=100(编程训练题)
Description
给定一个有序的十进制序列,找出两个数的和为100的数对。
如-1 0 50 70 88 101 120中只有-1+101=100,因此只有一对。
Input
有多组测试数据,你的程序必须读到EOF为止。
每组数据两行,第一行一个整数N(2<=N<=10000),N表示给的数的个数,接下来一行N个整数,用空格隔开,这N个整数各不相同,且都在-2^31到2^31之间。N为0时,表示输入结束,不需要处理。
Ouput
对于每组数据,输出单独的一行,表示和为100的数对个数。
Sample Input
10
10 20 30 45 46 60 70 80 90 100
7
-1 0 50 70 88 101 120
0
Sample Output
3
1



10.点的变换(编程训练题)
Description
在计算机图形学中,对于图形的变换是在齐次坐标中乘以一个变换矩阵,如空间中的点(0,0,0)平移到(1,3,-2)。相当于计算
 

现给出一个点和一个变换矩阵.求变换后的点的坐标。
Input
有多种情况T,每一种情况先输入原始的点,接着是4行4列的矩阵。
Ouput
每一种情况输出一行,先输出Case :n(n从1开始), 接着是变换后的点。
Sample Input
2
0 0 0
1 0 0 0
0 1 0 0
0 0 1 0
1 3 -2 1
1 2 4
2 0 0 0
0 2 0 0
0 0 3 0
0 0 0 1
 
Sample Output
Case 1: 1 3 -2
Case 2: 2 4 12



11.粗心的小明(编程训练题)
Description
小明是个小学生,列式很爱用各种括号,但总是很粗心,老漏掉一些括号,使得列式错误。请你编程判断他列式是否正确。
一个正确的列式应该遵循如下规则:
(1).所有的括号应该配对,括号只包括()[]{}
(2).运算符不能连续出现,却运算符不能连接所有的右括号,运算符包括+-*/
(3).一对括号之间不能为空,如:2+3+()+4是一个错误的表达式.
(4).括号之间应该有运算符连接(头尾的括号除外),如:3+(4)(3)+2是错误的,{3*(4+2)}是正确的。
(5).运算符*/不能出现在列式的开头,所有运算符不能出现在列式的末尾.
Input
有多组测试数据,你的程序必须读到EOF。每组数据一行,为一个没有空格的字符串S,S的长度不超过100.
Ouput
对于每组数据,如果该输入的字符串是一个正确的列式,则输出"Yes",否则输出"No"。
Sample Input
{(3+5)*2-5}+5
[9-(7+2)/8
+3*(4+3/4)
(3+)*4
Sample Output
Yes
No
Yes
No


12.菱形(编程训练题)
Description
输出边长由N个"*"构成的菱形。
Input
输入有多组测试数据,输入以EOF为结束,对于每一组测试数据只有一个整数N(0<N<100)。
Ouput
对于每一组测试数据,输出边长由N个"*"构成的菱形。
Sample Input
3
5
Sample Output
  *
 ***
*****
 ***
  *
    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *



13.党员活动(编程训练题)
Description
三明学院学生党员奉献活动在学校中起到了很好的反响,考虑到活动的持久性和平衡性,决定上次已经去过的党员这次不去,给你上次已经去过的学生学号和这次准备参加的学生学号,请编程确定这次参加奉献活动的学生名单。
Input
先输入一个整数N(1<=N<=1000),N表示场次去过的人数,然后输入上次参加活动的N个学生党员学号x1,x2,x3,...xN,学号用一个整数表示,且1<=xi<=100000,接着再输入一个整数M(1<=M<=1000),M表示这次报名活动的学生数,然后输入这次报名活动的M个学生党员学号y1,y2,y3...yM且1<=yi<=100000。
Ouput
对于每组数据,输出这次参加奉献活动的学生党员人数和学号,所有学号从小到大输出,用空格隔开。
Sample Input
5 1 3 5 7 9
7 10 1 2 4 5 7 8
2 1 2
2 1 2
 
Sample Output
4 2 4 8 10
0



14.分隔宝石 (编程训练题)
Description
在A星球上发现了一个形状奇异、重量出奇的五色宝石。经专家的分析和测算,准备分成不同的N块。每分一次的费用与重量相当。如分10为6和4两块,就要用10单位的钱。请你计算分完后的最小费用。假设分的过程无损。
Input
先输入要分成的块数N(1<=N<=20000),然后N行,每行是分好后一块宝石的重量m(1<=m<=50000)。
Ouput
输出最小的费用。
Sample Input
3
8
5
8
Sample Output
34
Hint
哈夫曼树的应用。要用大整数。



15.机器人眼中的表达式 (编程训练题)
Description
小明是个小学生,他不爱动脑,老是让机器人帮他做数学作业,可机器人认的表达式与小明写的不一样。如3+4 要写成 3 4+; 0.3/(5*2+1)要写成0.3 5 2*1 +/ 。也就是后缀表达式。你愿意帮小明吗?写一个转换的程序。
Input
输入有若干行,每行一个表达式,由数字括号([](){})及运算符(+ - * / ^)组成。
Ouput
输出是对应的后缀表达式,数字间要用空格分开。
Sample Input
3+4
0.3/(5*2+1)
Sample Output
3 4+
0.3 5 2*1 +/
Hint
见数据结构中的栈。


16.电脑爱算 (编程训练题)
Description
我们列的表达式有括号指定了运行的先后顺序,可机器用的是没有括号的后缀表达式。如3+4 要写成 3 4+; 0.3/(5*2+1)要写成0.3 5 2*1 +/ 。请你编程计算一下后缀表达式的结果。
Input
输入有若干行,每行一个后缀表达式由数字、括号([](){})及运算符(+ - * / ^)组成,
Ouput
每行输出一个对应的值。
Sample Input
3 4+
0.3 5 2*1 +/
Sample Output
7
3.3
Hint
栈的应用,见数据结构。

搜索更多相关主题的帖子: 我的邮箱 c语言 老师 学生 
2011-01-01 14:21
煌的天空
Rank: 1
来 自:福建三明
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-1-1
收藏
得分:0 
回复 楼主 煌的天空
这不是作业哦,这是练习,我是遇到不懂的地方希望大家能帮我解决啊,大家也讨论下啊
2011-01-01 14:54
煌的天空
Rank: 1
来 自:福建三明
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-1-1
收藏
得分:0 
回复 6楼 xiaomarn
谢谢了啊,做好后麻烦你发我邮箱下哈,在此感谢了啊
2011-01-01 22:45
煌的天空
Rank: 1
来 自:福建三明
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-1-1
收藏
得分:0 
回复 7楼 煌的天空
谢谢了啊。感谢啊
2011-01-01 23:13
煌的天空
Rank: 1
来 自:福建三明
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-1-1
收藏
得分:0 
回复 10楼 xugaige
又不强求,又没求你,奇了怪了,我请教的是那些真的对这c语言有兴趣的人一起交流下的,看这程序要怎么做才好,你发不发关我什么事啊,太奇怪了,怎么会有你这种人啊,简直有辱学习,我是抱着交流的心态来请教的,既然你不想发就别发嘛,太奇怪了,真的是林子大了,什么鸟都有
2011-01-01 23:29
煌的天空
Rank: 1
来 自:福建三明
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-1-1
收藏
得分:0 
回复 15楼 aaronhexin
看来你还小,不懂我的意思,哥不会和你计较的,我会原谅你的
2011-01-02 14:31
煌的天空
Rank: 1
来 自:福建三明
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-1-1
收藏
得分:0 
回复 18楼 煌的天空
你们素质不是很好哦,本想试试你们的实力,没想到,素质那么差,你说没有交流对吧,你看:
T1分级+:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <stdlib.h>
#include<math.h>

void main()
{
    int i,n;
    while(scanf("%d%*c",&n)!=EOF)
    {
    if(n<1000 && n>-1000)
        {
        if(n>=90) printf("A\n");
        else if(n>=80) printf("B\n");
        else if(n>=70) printf("C\n");
        else if(n>=60) printf("D\n");
        else if(n>=0) printf("E\n");
        else printf("Error\n");
        }
    }
}

T4提问+:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <stdlib.h>
#include<math.h>

int* binSort(int array[],int n)//二分法插入排序
    {
    int *a,i,j,left,mid,right,temp;
    a=(int*)malloc(n*sizeof(int));//动态数组a
    if(a==NULL) {printf("out!");exit(0);}
    for(i=0;i<n;i++) a[i]=array[i];//不能破坏原始数组,所以做数组传值
    for(i=1;i<n;i++)
        {
        temp=a[i];left=0;right=i-1;
        while(left<=right)
            {
            mid=(left+right)/2;//mid指向查找范围中间,范围偶数时是中左一位置
            if(temp<a[mid]) right=mid-1;
            else left=mid+1;
            }
        for(j=i-1;j>=left;j--) a[j+1]=a[j];
        if(left!=i) a[left]=temp;
        }
    return a;
    }
void main()
{
    int i,n,a[2000],*b;
    while(scanf("%d*c", &n) != 0)
    {
        if(n==0) break;
        for(i=0;i<n;i++) scanf("%d%*c",&a[i]);
        b=binSort(a,n);
        for(i=0;;i++)
            {
            if(b[n-2]==a[i]) {printf("%d ",i+1,b[n-2]);break;}
            }
        for(i=0;;i++)
            {
            if(b[1]==a[i]) {printf("%d\n",i+1,b[1]);break;}
            }
    }
}
10
90 80 70 60 85 95 100 99 70 81
10
60 70 71 72 73 74 75 76 77 78
0

T7村会+:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <stdlib.h>
#include<math.h>

void main()
{
    int a[100],n,m,i[100],j[100],k,ans;
    for(k=0;k<100;k++) a[k]=k+1;
    while(scanf("%d %d%*c",&n,&m)!= EOF)
    {
    for(k=0;k<m;k++)
        scanf("%d %d%*c",&i[k],&j[k]);
    for(k=0;k<m;k++)
        {
        ans=0;
        if(i[k]>n||j[k]>n||i[k]<1||j[k]<1) {printf("Error\n");continue;}
        while(1)
            {
            if(i[k]>j[k]&&i[k]) {i[k]/=2;ans++;}
            else if(i[k]<j[k]) {j[k]/=2;ans++;}
            else break;
            }
        printf("%d\n",ans);
        }
    }
}

T8奖金+:
#include "stdio.h"
#include "malloc.h"
#include "string.h"
#include "stdlib.h"
#include<math.h>
typedef struct SeqList * PSeqList;//指向班级集顺序表
typedef struct Student * PStudent;//指向一个班级
struct Student{int m;int *e;};//班级内结构,m为学生数
struct SeqList{int n;PStudent std;};//班级集顺序表结构,n为班级数

void main()
{
    int n,m,nb1=0,nb2=0,i,j;
    PSeqList bj;
    while(scanf("%d%*c",&n)!=EOF)
    {
    bj=(PSeqList)malloc(sizeof(struct SeqList));
    if(bj==NULL) {printf("out");exit(0);}
    else bj->n=n;
    bj->std=(PStudent)malloc(n*sizeof(struct Student));
    if(bj->std==NULL) {printf("out");exit(0);}
    for(i=0;i<n;i++)
        {
        scanf("%d%*c",&m);
        bj->std[i].e=(int*)malloc(m*sizeof(int));
        bj->std[i].m=m;
        for(j=0;j<m;j++)
            scanf("%d%*c",&bj->std[i].e[j]);
        }
    for(i=0;i<n;i++)//找出最大的两个
        {
        for(j=0;j<bj->std[i].m;j++)
            if(nb2<bj->std[i].e[j])
                {
                nb2=bj->std[i].e[j];
                if(nb1<nb2) {nb1+=nb2;nb2=nb1-nb2;nb1-=nb2;}
                }
        }
    for(i=0;i<n;i++)//重新定位置
        {
        for(j=0;j<bj->std[i].m;j++)
            {
            if(nb1==bj->std[i].e[j])
                {
                printf("Class %d: %d ",i+1,j+1);nb1=-1;
                }
            else if(nb2==bj->std[i].e[j])
                {
                    printf("Class %d: %d\n",i+1,j+1);nb2=-1;
                }
        //    if(nb2==nb1&&nb1==-1)
        //        exit(0);
            }
        }}
}

剩下的就你这高素质人才完成吧,主保佑你


2011-01-05 23:42
煌的天空
Rank: 1
来 自:福建三明
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-1-1
收藏
得分:0 
回复 23楼 wujieru
你都还没滚我怎么能走呢
2011-01-06 09:54
快速回复:求助!!!谁帮我把这几个题目做一下啊,做好的话把程序代码发到我的邮 ...
数据加载中...
 
   



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

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