cの整数配列(例:int a []):a [i]を使用してアクセスすると、間違った値が返されるのはなぜですか。

user3832512
#include<stdio.h>
#include<string.h>

int main(){
    int a[100];
    int j;

    printf("enter nos");
    gets(a);

    for(j=0;j<strlen(a);j++){  
        printf("\n %d",a[j]);
    }
    getch();
}

i / p番号の場合:1 2 3出力は:3355185 4915512 1995911159

どうしたの ?

これはメイン(フル)プログラムです。

#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
    int i,j,k,seq=0,m=2,q=2,l;int n;
    int a[10];int s[10];                   //I tried using char but later in the for loop I have to compare j(int) and n. n gets its value from array. So implicit conversion messes it up.
    printf("\n enter the array elts ");
    gets(a);
    puts(a);
    printf("\n enter the  sequence ");
    gets(s) ;
    puts(s);

    for(i=0;i<strlen(s);i++)
    {
        n=(s[i]-1); printf("\n %d",s[i]); //I know that the problem is due to some implicit     conversion from char to int.
        for(j=0;j<n;j++)                    //But I don't know how to fix it
        {
            seq=seq+m;
        }
        printf("\n %d",seq);
        for(k=0,l=(seq);k<q;k++,l++)
        {
            putchar(a[l]);} m=2;seq=0;
        }
        getch();
    }

配列内の要素を取得し、配列を長さmのパーティションに分割し、ユーザーが指定した順序でパーティションを表示しようとしています。

入力:配列要素:10、20、30、40、50、60、70、80、90順序M:2(パーティション10、20 | 30、40 | 50、60 | 70、80 | 90)シーケンス順序:5 、2、4、1、3出力:90、30、40、70、80、10、20、50、60

編集:これがうまくいったとは信じられない私はnから48を引いた。nが2のとき、どういうわけかforループが50回実行されたことがわかりました。誰かが私にそれを説明できますか?

#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
    int i,j,k,seq=0,m=2,q=2,l;char n;
    char a[10];char s[10];
    printf("\n enter the array elts ");
    gets(a);
    puts(a);
    printf("\n enter the  sequence ");
    gets(s) ;
    puts(s);

    for(i=0;i<strlen(s);i++)
    {
        n=(s[i]-1);
        for(j=0;j<n-48;j++)
        {
            seq=seq+m;
        }
        for(k=0,l=(seq);k<q;k++,l++)
        {
            putchar(a[l]);} m=2;seq=0;
        }
        printf("\n");
        getch();
    }
ブルーピクシー
#include <stdio.h>
#include <string.h>

//store a string to an array that contains the numbers separated by spaces
//return the number that can be read
int intoArray(char line[], int a[], size_t size);

int main(){
    char line[1024];
    int a[16], s[16], m;
    int alen, slen;
    int i, j;

    printf("\nenter the array : ");
    fgets(line, sizeof(line), stdin);
    alen = intoArray(line, a, sizeof(a)/sizeof(*a));

    printf("\nenter the sequence : ");
    fgets(line, sizeof(line), stdin);
    slen = intoArray(line, s, sizeof(s)/sizeof(*s));

    printf("\nenter length of partitions : ");
    scanf("%d", &m);

    for(i = 0; i < slen ; ++i){
        for(j = m*(s[i]-1); j < alen && j < m*s[i] ; ++j){
            printf("%d ", a[j]);
        }
    }

    return 0;
}

int intoArray(char line[], int a[], size_t size){
    const char *delimiter = " \t\n";
    char *p = line;
    size_t i = 0;
    for(p = strtok(p, delimiter); p && i < size; p = strtok(NULL, delimiter)){
        int num;
        if(1==sscanf(p, "%d", &num))
            a[i++] = num;
    }
    return i;
}
/* demo
enter the array : 10 20 30 40 50 60 70 80 90

enter the sequence : 5 2 4 1 3

enter length of partitions : 2
90 30 40 70 80 10 20 50 60
*/

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Cでn> = 34の場合、配列を使用して階乗値を格納すると間違った値が出力されるのはなぜですか

分類Dev

「==」と比較して「is」を使用すると、np.allが間違った値を返すのはなぜですか?

分類Dev

Swiftでpowを使用して間違った答えが返されるのはなぜですか?

分類Dev

SimpleDateFormatを使用して文字列から日付を解析すると、間違った結果が返されるのはなぜですか?(Java)

分類Dev

APIから返されたjson配列の情報にアクセスするのが難しい。私は何が間違っているのですか?

分類Dev

シーザー暗号:テストとして使用される印刷された値の間に正しい値があるのに、なぜ私のプログラムが間違った答えを返すのですか?

分類Dev

配列のコンテンツを印刷しているときに、awkを使用して間違った出力が表示されるのはなぜですか

分類Dev

RecyclerViewアイテムをクリックすると、間違ったアイテムIDが返されるのはなぜですか?

分類Dev

関数(SELECT内)によって返される配列にアクセスするときに括弧を追加する必要があるのはなぜですか?

分類Dev

dhclientが「SIOCSIFADDR:アクセスが拒否されました」と言っているのはなぜですか?

分類Dev

dhclientが「SIOCSIFADDR:アクセスが拒否されました」と言っているのはなぜですか?

分類Dev

110/100を除算すると、SQLで間違った答えが返されるのはなぜですか?

分類Dev

マチンの公式を使用して円周率の値を計算すると、間違った値が得られるのはなぜですか?

分類Dev

ループで$ v0レジスタを使用すると、間違った出力が返されるのはなぜですか?

分類Dev

なぜこのPythonスクリプトは、ifブロックでawkとcomapring値を使用して、間違った出力を提供しているのですか?

分類Dev

配列は関数の引数として渡されてアクセスされますが、関数から戻った後に配列の値が変更されるのはなぜですか?

分類Dev

ViewHolder を RecyclerView.Adapter のクラス メンバーとして作成すると、なぜ getAdapterPosition が間違った値を返すのか

分類Dev

無限ループを使用して符号なし整数を追加すると、間違った結果が得られるのはなぜですか?

分類Dev

手動ビュー包含を使用しているときに、viewWillDisappearが間違ったタイミングで呼び出されるのはなぜですか?

分類Dev

numpy配列を9の累乗で上げると、間違った結果が返されるのはなぜですか?

分類Dev

最初の引用符がエスケープされていると、Spannable fromHtmlが間違った誤った出力を返すのはなぜですか?最初の文を削除します

分類Dev

ACLを使用しているときに、lsがグループに対して間違ったアクセス許可を表示するのはなぜですか?

分類Dev

与えられた入力が間違っていると、vbaが常にエラーなしを返すのはなぜですか?

分類Dev

containsを使用すると、ArrayListが常に間違ったデータを返すのはなぜですか?

分類Dev

`i`整数の値が間違っているのはなぜですか?

分類Dev

引数として渡されたオブジェクト内のキーの値を返す、何が間違っているのですか?

分類Dev

PDOが間違った値を挿入してMySqlにこの準備された挿入が行われるのはなぜですか?

分類Dev

Spring SecurityとKeycloakによって「アクセスが拒否されました」というエラーが表示されるのはなぜですか?

分類Dev

この合成関数が参照として渡されたときに、関数を間違った順序で適用するのはなぜですか?

Related 関連記事

  1. 1

    Cでn> = 34の場合、配列を使用して階乗値を格納すると間違った値が出力されるのはなぜですか

  2. 2

    「==」と比較して「is」を使用すると、np.allが間違った値を返すのはなぜですか?

  3. 3

    Swiftでpowを使用して間違った答えが返されるのはなぜですか?

  4. 4

    SimpleDateFormatを使用して文字列から日付を解析すると、間違った結果が返されるのはなぜですか?(Java)

  5. 5

    APIから返されたjson配列の情報にアクセスするのが難しい。私は何が間違っているのですか?

  6. 6

    シーザー暗号:テストとして使用される印刷された値の間に正しい値があるのに、なぜ私のプログラムが間違った答えを返すのですか?

  7. 7

    配列のコンテンツを印刷しているときに、awkを使用して間違った出力が表示されるのはなぜですか

  8. 8

    RecyclerViewアイテムをクリックすると、間違ったアイテムIDが返されるのはなぜですか?

  9. 9

    関数(SELECT内)によって返される配列にアクセスするときに括弧を追加する必要があるのはなぜですか?

  10. 10

    dhclientが「SIOCSIFADDR:アクセスが拒否されました」と言っているのはなぜですか?

  11. 11

    dhclientが「SIOCSIFADDR:アクセスが拒否されました」と言っているのはなぜですか?

  12. 12

    110/100を除算すると、SQLで間違った答えが返されるのはなぜですか?

  13. 13

    マチンの公式を使用して円周率の値を計算すると、間違った値が得られるのはなぜですか?

  14. 14

    ループで$ v0レジスタを使用すると、間違った出力が返されるのはなぜですか?

  15. 15

    なぜこのPythonスクリプトは、ifブロックでawkとcomapring値を使用して、間違った出力を提供しているのですか?

  16. 16

    配列は関数の引数として渡されてアクセスされますが、関数から戻った後に配列の値が変更されるのはなぜですか?

  17. 17

    ViewHolder を RecyclerView.Adapter のクラス メンバーとして作成すると、なぜ getAdapterPosition が間違った値を返すのか

  18. 18

    無限ループを使用して符号なし整数を追加すると、間違った結果が得られるのはなぜですか?

  19. 19

    手動ビュー包含を使用しているときに、viewWillDisappearが間違ったタイミングで呼び出されるのはなぜですか?

  20. 20

    numpy配列を9の累乗で上げると、間違った結果が返されるのはなぜですか?

  21. 21

    最初の引用符がエスケープされていると、Spannable fromHtmlが間違った誤った出力を返すのはなぜですか?最初の文を削除します

  22. 22

    ACLを使用しているときに、lsがグループに対して間違ったアクセス許可を表示するのはなぜですか?

  23. 23

    与えられた入力が間違っていると、vbaが常にエラーなしを返すのはなぜですか?

  24. 24

    containsを使用すると、ArrayListが常に間違ったデータを返すのはなぜですか?

  25. 25

    `i`整数の値が間違っているのはなぜですか?

  26. 26

    引数として渡されたオブジェクト内のキーの値を返す、何が間違っているのですか?

  27. 27

    PDOが間違った値を挿入してMySqlにこの準備された挿入が行われるのはなぜですか?

  28. 28

    Spring SecurityとKeycloakによって「アクセスが拒否されました」というエラーが表示されるのはなぜですか?

  29. 29

    この合成関数が参照として渡されたときに、関数を間違った順序で適用するのはなぜですか?

ホットタグ

アーカイブ