TYUTlfx 发表于 2020-4-9 18:15

C语言编程题目问题,CCF真题,求找出问题(应该不是错误)

本帖最后由 TYUTlfx 于 2020-4-12 08:37 编辑

学了一段时间C语言,今天在CCF上找了真题来做,结果不管怎么修改都只有70分,求大佬们给看看可能是哪里的问题。

之前头脑混乱忘了发题了,直接一串代码,还有大佬给看,真是太谢谢了。把题补上,大家再帮忙看看呗,谢谢谢谢。



```
#include <stdio.h>
#define true 1
#define false 0

int seven(int a);

int main()
{
    int n, num = 1, cnt = 0, i = 1;
    int a = {0, 0, 0, 0,};
    scanf("%d", &n);
    while (cnt != n)
    {
      num++;
      if (num % 7 == 0 || seven(num))
      {
            a += 1;
            continue;
      }
      cnt++;
    }
    printf("%d\n%d\n%d\n%d", a, a, a, a);
    return 0;
}

int seven(int a)
{
    int n = a, cn = 1, b = false;
    while (n != 0)
    {
      if (n % 10 == 7)
      {
            b = true;
            break;
      }
      n /= 10;
    }
    return b;
}

```
关于数组的初始化与输出没有使用循环来做是因为另一个问题,就是如果使用**for (int i = 0; i < n; i++)**这种格式,会导致编译出错,如果有大佬知道原因也请告诉我一下。
这段代码感觉***逻辑上应该没有问题***,也测试了很多样例,答案都没什么问题,但始终拿不到满分,还是很郁闷的,请大家帮帮忙,谢谢您。

以下是悲惨的提交经历



没有 发表于 2020-4-9 19:33

你要不要把你第二张图打下马,姓名和邮箱都出来了。

MarioCrane 发表于 2020-4-9 19:36

C不支持临时变量在for循环中定义,C++是支持的

huzpsb 发表于 2020-4-9 20:02

MarioCrane 发表于 2020-4-9 19:36
C不支持临时变量在for循环中定义,C++是支持的

不,那样会爆零的

huzpsb 发表于 2020-4-9 20:04

是不是爆int了?换uint或者ll试一试?

klamauk 发表于 2020-4-9 20:51

子函数变量cn是用来干什么的?

Vjmms 发表于 2020-4-9 23:54

本帖最后由 Vjmms 于 2020-4-9 23:55 编辑

你在 main 函数中的 while 语句逻辑有问题。写了个100分的代码,你参考一下。
#include <stdio.h>

int seven(int num){
      while (num != 0){
                if (num % 10 == 7){
                        return 1;
                }
                num = num / 10;
      }
      return 0;
}

int main() {
      int i;
      int cnt = 0, skipTimes = 0;
      int skip[] = {0, 0, 0, 0};
      int n;
      scanf("%d", &n);
      while (cnt - skipTimes < n) {
                cnt++;
                if (cnt % 7 == 0 || seven(cnt)) {
                        skip[(cnt-1) % 4] += 1;
                        skipTimes++;
                }
      }
      
      for (i = 0; i < 4; i++) {
                printf("%d\n", skip);
      }
      return 0;
}

TYUTlfx 发表于 2020-4-10 08:46

没有 发表于 2020-4-9 19:33
你要不要把你第二张图打下马,姓名和邮箱都出来了。

谢谢提醒,之前{:1_909:}没注意

TYUTlfx 发表于 2020-4-10 08:48

klamauk 发表于 2020-4-9 20:51
子函数变量cn是用来干什么的?

哦哦,之前把判断位数和判断是否有七分开写的,改的时候忘记删了

TYUTlfx 发表于 2020-4-10 08:49

huzpsb 发表于 2020-4-9 20:04
是不是爆int了?换uint或者ll试一试?

能给解释下爆零是什么意思吗?我不懂呀{:1_924:}
页: [1] 2
查看完整版本: C语言编程题目问题,CCF真题,求找出问题(应该不是错误)