私は自分のコードでやっているし、それは必要な出力を与えるが、それは終了しません!どうすれば修正できますか? 私はリターンしようとしましたが、それを維持する適切な場所が見つからなかった 私は自分のコードでやっているので、必要な出力が得られますが、終了しません!どうすれば修正できますか? 私は復帰を試みたが、あなたのプログラムが成功した場合、それはcでプログラムを終了する方法は?
#include<stdio.h>
void get_input();
void is_valid(int num);
void print_pattern(int num);
void main()
{
get_input();
}
void get_input()
{
int a;
printf("Enter an odd number less than or equal to 9 and greater than 0 > ");
scanf("%d",&a);
is_valid(a);
}
void is_valid(int num)
{
if(num > 9)
printf("You have entered a number greater than 9. Please try again.\n\n");
else if (num < 1)
printf("You have entered a number less than 1. Please try again.\n\n");
else if (num % 2 == 0)
printf("You have entered an even number. Please try again\n\n");
else if (num >= 1 && num <= 9 && num%2!=0)
print_pattern(num);
get_input();
}
void print_pattern(int num)
{
int j,k,l;
for (j = 0; j<num/2 ; j++){
for (k = 0; k<num/2 - j; k++){
printf(" ");
}
for(l=0; l < (2*j + 1); l++){
printf("%2d",l+1);
}
printf("\n");
}
for(l=0; l <num; l++) // to print middle
{
printf("%2d",l+1);
}
printf("\n");
// to print bottom
for (j = 0; j<num/2 ; j++){
for (k = 0; k<j+1 ; k++){
printf(" ");
}
for (l=1; l< num - (2*j + 1); l++){
printf("%2d",l);
}
printf("\n");
}
}
終了する代わりに何をしますか?それはどこに詰まっていますか? – Carcigenicate
'get_input'と' is_valid'の間に相互再帰があります。そのうちの1人がもう1人を呼ぶことなく戻ることを許可する必要があります。終了時には何を決定したいですか? – Carcigenicate
まずコードのインデントを開始します。 –