xiaosi4081 发表于 2020-5-9 11:54:37

C语言小练习-第2期

本帖最后由 xiaosi4081 于 2020-5-12 16:36 编辑

                                                                                                                        今天的题目:
津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且,上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。



输入格式:
        输入包括七行数据,分别表示周一到周日的日程安排。每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。      
输出格式:
        输出包括一行,这一行只包含一个数字。如果不会不高兴则输出0,如果会则输出最不高兴的是周几(用1,2,3,4,5,6,7分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的—天。                       



例1:

输入:
5 3
6 2
7 2
5 3
5 4
0 4
0 6
输出:
3   
例2:
输入:
4 4
2 2
0 4
5 4
6 3
0 0
0 5
输出:
4   

如果喜欢,别忘了订阅(并且评分){:10_281:}
                                                                                                                https://xxx.ilovefishc.com/forum/201709/19/094516hku92k2g4kefz8ms.gif
上次的答案:
#include <stdio.h>
int main()
{
    int n,i,t,j,b,sum;
    char a,x;
    printf("请输入ISBN号:\n");
    scanf("%s",a);//读入原始字符串
    sum=0;
    for(i=0;i<13;i++)//为了将字符数组转化为整型数组,并且还要考虑如果识别码为X的情况//
    {
      if('0'<=a&&a<='9')
      {        if(i==0)
                b=a-48;
            if(i>=2&&i<=4)
                b=a-48;
            if(i>=6&&i<=10)
                b=a-48;
            if(i==12)
                b=a-48;
      }

      if(a=='X')//特别要注意,X没在字符0-9里,要单独赋值
            b=88;
    }
    j=1;
    for(i=0;i<9;i++)
    {
      sum=sum+b*j;
      j=j+1;
    }
    t=sum%11;//计算余数
    if(t==b || t==b-78)//这个判断条件也要注意,如果余数为10,识别码为X的序列也是正确的//
    {
      printf("Right");
      return 0;
    }
    else
    {
      if(t!=10)//有两种情况,要分别讨论
      {
            a=t+48;
            printf("%s",a);
      }
      if(t==10)
      {
            a='X';
            printf("%s",a);
      }
    }
    return 0;
}
注:答案不唯一

永恒的蓝色梦想 发表于 2020-5-9 11:59:20

洛谷上有这道题#include<stdio.h>

int main(){
    int a,b,max=8,maxdate=0;

    for(int date=1;date<=7;date++){
      scanf("%d %d",&a,&b);
      a+=b;
   
      if(a>max){
            max=a;
            maxdate=date;
      }
    }

    printf("%d",maxdate);
    return 0;
}

永恒的蓝色梦想 发表于 2020-5-9 12:02:35

xiaosi4081 发表于 2020-5-9 12:00
这道题的难点是输入
但是其实可以直接用for循环

输入很难吗?

xiaosi4081 发表于 2020-5-9 12:04:45

永恒的蓝色梦想 发表于 2020-5-9 12:02
输入很难吗?

未必,因为刚刚忘了想循环

xiaosi4081 发表于 2020-5-9 12:15:42

永恒的蓝色梦想 发表于 2020-5-9 11:59
洛谷上有这道题

不错嘛{:10_256:}

永恒的蓝色梦想 发表于 2020-5-9 12:24:20

xiaosi4081 发表于 2020-5-9 12:15
不错嘛

蟹蟹{:10_297:}

xiaosi4081 发表于 2020-5-9 12:49:54

这边我用while循环的思路:
#include <stdio.h>

int main()
{
    int a,b;
    int date;
    int big,maxday;
    maxday=0;
    big=8;
    date=1;
    while(date<=7){
      date=date+1;
      scanf("%d%d",&a,&b);
      a+=b;
      if(a>big){
            big=a;
            maxday=date;
            if(a==big){
                maxday=maxday-1;
            }
      }
    }
    printf("\n%d",maxday);
    return 0;
}

xiaosi4081 发表于 2020-5-12 11:20:21

本帖最后由 xiaosi4081 于 2020-5-12 16:29 编辑

有人吗??{:9_241:}

andy大宝 发表于 2020-5-12 19:47:15

在“啊哈添柴”里面有这一道题目诶

xiaosi4081 发表于 2020-5-12 19:48:05

andy大宝 发表于 2020-5-12 19:47
在“啊哈添柴”里面有这一道题目诶

就是从那里抽的

andy大宝 发表于 2020-5-12 20:02:44

xiaosi4081 发表于 2020-5-12 19:48
就是从那里抽的

哦,怪不得这么眼熟
页: [1]
查看完整版本: C语言小练习-第2期