• 5回复贴,共1

求大佬帮助C编程作业(可有偿)

只看楼主收藏回复

还有四个小时交作业 有大佬会C编程帮一手吗,这边四个作业,其中一维数组的有两个已经做的差不多了但是可能因为空格什么的总是结果不对。还有两个模块化编程的还没太搞定,不知道有没有大佬可以带飞一波.?


来自iPhone客户端1楼2017-06-25 19:58回复
    我帮你


    来自Android客户端2楼2017-06-25 20:05
    收起回复
      这是第一个题目要求,就是我发的图片那个,问题就是为什么样例输入进去结果和他一样就是不能通过?
      1
      从键盘输入n个学生某门课的成绩,按要求完成功能。(15分)
      题目内容:
      从键盘输入n个(n<=10)学生某门课的成绩(0-100的整数),当输入成绩为负值时,则输入结束。
      具体要求完成的功能如下:
      1)按成绩高低排序,输出排序后的成绩;
      2)统计并输出不及格成绩、人数;
      3)输出最高分、最低分。
      输入格式:
      n个整数(0-100)分数用标准间隔方式分隔(空格、tab、回车),输入负数时输入结束。
      如果输入的分数个数超过10个,则只处理前10个成绩。
      如果输入的分数<0,则结束输入;如果输入的分数>100,则该分数被视为无效成绩,会被忽略不进入后续的操作。
      输出格式:
      输出的数据之间用一个空格分隔,每完成一个功能后换行。
      用例1
      输入样例:
      85 5590 75 88 70 65 45 -1
      输出样例:
      90 8885 75 70 65 55 45
      55 452
      90 45
      用例2
      输入样例:
      85 5590 75 88 70 65 45 95 80 85 -1
      输出样例:
      95 9088 85 80 75 70 65 55 45
      55 452
      95 45
      用例3
      输入样例:
      80 75101 95 90 50 11 22 33 44 55 -1
      输出样例:
      95 9080 75 55 50 44 33 22 11
      55 5044 33 22 11 6
      95 11
      时间限制:500ms内存限制:32000kb
      以下是我的代码
      #include"stdio.h"
      main(){
      int i,j,a[20],t,score,COUNT=0;
      printf("please input 10 students' score:\n");
      for(i=0;i<19;i++){
      scanf("%d",&a[i]);
      if(a[i]<0)//1.只处理前十个成绩 2.输入小于0结束输入 3.输入大于100跳过
      {
      i--;
      break;
      }
      if(i>9)break;
      if(a[i]>100)
      {
      i--;
      continue;
      }
      }
      for(t=0;t<=i;t++)//排序算法
      {
      for(j=t;j<=i;j++){
      if(a[t]<a[j])
      a[t]^=a[j]^=a[t]^=a[j];
      }
      if(t==i)printf("%d\n",a[t]);
      else printf("%d ",a[t]);
      }
      for(t=0;t<=i;t++){//不及格人数
      if(a[t]<60){
      COUNT++;
      printf("%d ",a[t]);
      }
      }
      printf("%d\n",COUNT);
      printf("%d %d",a[0],a[i]);
      }


      4楼2017-06-25 20:24
      收起回复
        第二题也是 输入样例之后输出和要求的一样但是就是没办法通过 以下是第二题
        2
        从键盘上输入一个字符串按照以下规则对其加密。(10分)
        题目内容:
        从键盘上输入一个字符串存放在一个字符数组中,按照以下规则对其加密:其中所有的英文字母加3,即字母'A'加密后变成'D',而'X'加密后变成'A',其它字符不变,将加密后的字符串存放到另一个字符数组中,输出原字符串和加密后的字符串。
        输入格式:
        字符串的输入以回车来结束,字符串的长度不超过50个字符。
        输出格式:
        输出原字符串和加密后的字符串,中间用回车间隔。
        输入样例:
        XYZ 123*! ABC
        输出样例:
        XYZ 123*! ABC
        ABC 123*! DEF
        时间限制:500ms内存限制:32000kb
        以下是我的代码
        int main()
        {
        char str1[50],str2[50];
        int i=-1,j=0;
        printf("请输入字符串\n");
        gets(str1);
        for(i=0;i<=strlen(str1);i++)
        {
        if(str1[i]>='A'&&str1[i]<='W')
        str2[i]=str1[i]+3;
        else if(str1[i]>='X'&&str1[i]<='Z')
        str2[i]=str1[i]-23;
        else str2[i]=str1[i];
        }
        puts(str1);
        puts(str2);
        return 0;
        }


        5楼2017-06-25 20:28
        回复