-1

ubuntuターミナルのCで条件付きifループをどのように書くことができますか。これは私が大学で書かなければならないプロジェクトのためのものです。

私が言われたことから、言語はCだと思います。

問題を疑似コードで記述します。どんな助けも素晴らしいでしょう。

global x variable
global y variable

please enter X (x has to be a value between 1-100)
if anything other than 1-100 then repeat and ask for x again

once the value has been identified as 1-100
please enter Y
if anything other than 1-100 enter ask again

once the two values have been entered scan into a 2d array.

例:

please enter x: d
please enter x: d
please enter x: 5
please enter y: f
please enter y: 5

1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5 
1 2 3 4 5

提案をありがとう。

繰り返しになりますが、私の講師は、このモジュールは C であり、明確にするために Ubuntu Linux のコンソールであると述べています。

これが私がこれまでに持っているものです。その中のすべてのコメントで申し訳ありませんが、それらがすべてタスクの一部として何をするかを示すためにコメントする必要があります。

#include <stdio.h>  //this defines the library to use within c//  
#include <stdlib.h> //this defines the library to use within c//
#include <time.h>   //this defines the library to use within c//

int x; /*this sets the initial variables to program*/
int y; /*this sets the initial variables to program*/

int main(void){

printf("Please Enter Size X Of Array:");/*This is where the x limit of the array is set*/
scanf("%d",&x);

入力された値が1〜100の間であるかどうかをここで確認したいのですが、そうでない場合は、配列のサイズXを再度入力するために印刷されます(Yについても同じです)

printf("\n");

printf("please Enter Size Y Of Array:");/*This is where the y limit of the array is set*/
scanf("%d",&y);

    int array[x][y];/*this sets the initial variables to program*/

私が試してみるとうまくいかないので、誰でもあなたがこれを行う方法を投稿できますか。ありがとう。

4

2 に答える 2

1
do {
    printf("Please Enter Size X Of Array:");/*This is where the x limit of the array is set*/
    scanf("%d",&x);
} while (x<1 || x>100);
于 2012-05-06T06:26:34.930 に答える
0

このループを次のように記述します。

 for (;;) {
     printf ("Please Enter Size X Of Array: ");
     fflush (stdout);
     if (scanf ("%d", &x) == 1 && x >= 1 && x <= 100) {
         break;
     }
     /* Read a character to prevent looping forever for non-numbers or EOF. */
     if (( x = getchar()) == EOF) {
        exit (EXIT_FAILURE);
     }
 }
于 2012-05-06T08:17:28.267 に答える