関数の宣言の順番

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: 関数の宣言の順番

Re: 関数の宣言の順番

#10

by 03life » 3年前

みけCAT さんが書きました:
3年前
03life さんが書きました:
3年前
https://atcoder.jp/contests/abc188/submissions/21978449
これです
これは別の問題に提出していますね。
あ。。。
提出したらあってました。
本当に申し訳ないです。
ありがとうございました。。

Re: 関数の宣言の順番

#9

by みけCAT » 3年前

box さんが書きました:
3年前
なお、変数の定義は、その関数の最初の実行文の前にすべて
済ませておくことを強くおすすめします。
そうすれば、どんな処理系でも絶対にエラーにはなりませんので。
そんなことは無いでしょう。
存在しない型(その時点で宣言されていない型)を使ったり、予約語を変数として定義しようとしたりしたら、
エラーになる可能性があります。
また、文法上正しくても、大きい配列をローカルの自動変数で確保しようとすると、
スタックオーバーフローで落ちることもあります。

Re: 関数の宣言の順番

#8

by みけCAT » 3年前

03life さんが書きました:
3年前
https://atcoder.jp/contests/abc188/submissions/21978449
これです
これは別の問題に提出していますね。

Re: 関数の宣言の順番

#7

by 03life » 3年前

box さんが書きました:
3年前
わからなければそのままでよろしいかと。
なお、変数の定義は、その関数の最初の実行文の前にすべて
済ませておくことを強くおすすめします。
そうすれば、絶対にエラーにはなりませんので。
なるほど。ありがとうございます!次からそうしてみます。

Re: 関数の宣言の順番

#6

by box » 3年前

わからなければそのままでよろしいかと。
なお、変数の定義は、その関数の最初の実行文の前にすべて
済ませておくことを強くおすすめします。
そうすれば、どんな処理系でも絶対にエラーにはなりませんので。

Re: 関数の宣言の順番

#5

by 03life » 3年前

box さんが書きました:
3年前
それはそのサイトがそう判定してるからでしょう。
ところで関数の宣言じゃないしwww
変数の定義w
ありがとうございます。
言葉間違いなのは僕が悪いんですけど、笑う要素がどこにあるかわからないんですが、、

Re: 関数の宣言の順番

#4

by 03life » 3年前

みけCAT さんが書きました:
3年前
正解のコード
提出 #21978471 - AtCoder Beginner Contest 188
の提出は確認できましたが、不正解のコードの提出はすぐには確認できなそうです。
もしよろしければ不正解のコードの提出結果のURLを教えていただけますか?

なお、似たコード
提出 #21978422 - AtCoder Beginner Contest 188
はありましたが、これは配列の要素数が少ない値で固定になっており、ここの不正解のコードとは異なります。
https://atcoder.jp/contests/abc188/submissions/21978449
これです

Re: 関数の宣言の順番

#3

by みけCAT » 3年前

正解のコード
提出 #21978471 - AtCoder Beginner Contest 188
の提出は確認できましたが、不正解のコードの提出はすぐには確認できなそうです。
もしよろしければ不正解のコードの提出結果のURLを教えていただけますか?

なお、似たコード
提出 #21978422 - AtCoder Beginner Contest 188
はありましたが、これは配列の要素数が少ない値で固定になっており、ここの不正解のコードとは異なります。

Re: 関数の宣言の順番

#2

by box » 3年前

それはそのサイトがそう判定してるからでしょう。
ところで関数の宣言じゃないしwww
変数の定義w

関数の宣言の順番

#1

by 03life » 3年前

この問題についての質問です。

https://atcoder.jp/contests/abc188/tasks/abc188_b


下の二つのコードの

コード:

int = i;
の順番を変えただけで正解になりました。なぜだか解説をお願いしたいです。

最初が正解のコード、最後が不正解のコードとなります。
正解

コード:

#include <stdio.h>

int main (void)
{
    int i;
    int N;
    scanf("%d",&N);

    int a[N],b[N];
    int sum;

    for(i=0; i<N; i++) {
        scanf("%d",&a[i]);
    }

    for(i=0; i<N; i++) {
        scanf("%d",&b[i]);
    }

    for(i=0; i<N; i++) {
        sum += (a[i]*b[i]);
    }

    if(sum == 0) {
        printf("Yes\n");
    } else {
        printf("No\n");
    }

    return 0;
}
不正解

コード:

#include <stdio.h>

int main (void)
{
    int N;
    scanf("%d",&N);

    int i;
    int a[N],b[N];
    int sum;

    for(i=0; i<N; i++) {
        scanf("%d",&a[i]);
    }

    for(i=0; i<N; i++) {
        scanf("%d",&b[i]);
    }

    for(i=0; i<N; i++) {
        sum += (a[i]*b[i]);
    }

    if(sum == 0) {
        printf("Yes\n");
    } else {
        printf("No\n");
    }

    return 0;
}

ページトップ