2016-04-04 8 views
-1

私は学校のプロジェクトに取り掛かっています。バックテールトーナメントのために全国のティーンを入力する必要があります。私は3つのチームに入る必要があります。印刷に問題がある場合、これは単なるテストプリントです。私はプログラムから私を追い出します。これはC言語です。宜しくお願いします。ループで文字列を描く

#include<stdio.h> 

int main() 

{ 
    char t[30]; 

    int score1, score2; 

    int i; 

    printf("Enter the National Teams\n"); 
    for(i=1;i<4;i++) 
    { 
     scanf("%s", &t[i]); 
    } 
    for(i=1;i<4;i++) 
    { 
     printf("%s", t[i]); 
    } 
    return 0; 
} 
+0

サイズ30のchar配列を作成し、個々のchar位置に別々のchar配列を格納しようとしています。それは茶碗に10ガロンのミルクを注ぐようなものです。あなたがそれを得ていないのであれば、Cの文字列はヌルで終了するchar配列です。 – Chirality

+0

だから私はどのサイズを置くべきですか?お返事ありがとうございます –

+0

あなたはまだポインタを習得しましたか?彼らは文字列を使うときに不思議に思う。そうでない場合、サイズ[N] [Y]の2d文字配列を使用します。ここで、Nは文字列の最大数、Yは文字列の最大長です。 – Chirality

答えて

0

使用2-D char array次のよう

#include<stdio.h> 

int main() 
{ 
    char t[30][30]; 
    int score1, score2; 
    int i; 

    printf("Enter the National Teams\n"); 
    for(i=1;i<4;i++) 
    { 
     scanf("%s", t[i]); 
    } 
    for(i=1;i<4;i++) 
    { 
     printf("%s", t[i]); 
    } 
    return 0; 
} 

2-D char配列T [X] [Y]:Xは、文字列の最大数であり、Yは、文字列の最大長である可能

+0

大変ありがとうございます! –

+0

@JulianCosta問題が解決した場合は、他の人に役立つように適切な回答を受け入れてください。 – AkaSh

0

覚えておくべき大きなものは、Cの文字列の最後にヌル終端文字(ASCII 0)で、タイプcharの配列であるということです。あなたがここで行ったことは、charの長さが30の配列を宣言することです。あなたのプログラムは、文字列(char配列)を配列の各スロットに入れてクラッシュさせようとしています。

char(それ以外は2D配列とも呼ばれます)の配列を作成し、その各スロットに1つの文字列を格納してから、もう一度印刷します。明確にするために

、(この場合は、char)一つの値を含めることができ、それぞれが一連のバケットのような配列、を考える:

[ ][ ][c][ ][a]

プログラムがやろうとしているものです各バケットの中に文字列全体(char Sの全体の束である)突き出す:

[a][ ][ ][ ][ ] 
z 
c 
f 
b 
0

また、このような何かを行うことができます:

#include <stdio.h> 

int main(){ 
    int i; 

    char (*teamName)[10]; 

    for (i=0; i < 3; i++){ 
    scanf("%s", &teamName[i]); 
    } 

    for(i = 0; i < 3; i++){ 
    printf("%s\n", teamName[i]); 
    } 

    return 0; 
} 

以下の2D配列の提案とまったく同じことですが、それを行うためにポインタを使用しています。