Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Как избавиться от goto в СИ? Добавлено: 27.12.06 00:22  

Автор вопроса:  Цивильный
Привет, ребят. Если кто знает, помогите с маленькой программкой. Дан массив вещественных случайных чисел (размер массива определяет пользователь, но в диапазоне [3;20]). Определить произведение и результат деления всех чисел массива. Программа готова, но хотелось бы избавиться от goto! Вот код программы:
 
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
void main(void)
{
 double *a, P=1, D=1;
 int n, i;
 clrscr();
 printf(" ------------------------------------------------------------------------ --\n");
 printf(" Program for determination of the product and quotient of all numbers array\n");
 printf(" by dimensionality from 3 before 20\n");
 printf(" ------------------------------------------------------------------------ --\n\n");
 printf("Enter amount of the number from 3 before 20 n=");
 scanf("%d",&n);
 if (n>20)
   {
    printf("\nToo much elements\n");
    goto end;
   }
 if (n<3)
   {
    printf("\nToo little elements\n");
    goto end;
   }
 a=(double*)malloc(n*sizeof(double));
  for (i=0; i<n; i++)
   {
    printf("a[%d]=",i+1); scanf("%lf",&a);
    if (a==0)
   {
    printf("\n The Product P=%f",a);
    printf("\n The Quotient to get impossible, since on zero to divide it is impossible!");
    goto end;
   }
  P=P*a;
  D=D/a;
   }
 printf("\n The Product P=%lf",P);
 printf("\n The Quotient D=%.10lf",D);
 end:
 printf("\n\n Press any key to exit");
 free(a);
 getch();
}
 
Подскажите пожалуйста: Как избавиться от goto??? Зарание спасибо!

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 Sneaks



Вопросов: 9
Ответов: 84
 Профиль | | #1 Добавлено: 27.12.06 00:42
зашел на все топики созданные тобой =)
искал 10 отличий - не нашел, разве что только в названиях. Не много растроился даже =(

Ответить

Номер ответа: 2
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #2
Добавлено: 27.12.06 00:42
Как-то так...

#include<stdio.h>
#include<conio.h>
#include<malloc.h>
void main(void){
double *a, P=1, D=1;
int n, i;
clrscr();
printf(" ------------------------------------------------------------------------ --\n";);
printf(" Program for determination of the product and quotient of all numbers array\n";);
printf(" by dimensionality from 3 before 20\n";);
printf(" ------------------------------------------------------------------------ --\n\n";);
printf("Enter amount of the number from 3 before 20 n=";);
scanf("%d",&n);
if(n>20){
printf("\nToo much elements\n";);
} else if (n<3){
printf("\nToo little elements\n";);
} else{
a=(double*)malloc(n*sizeof(double));
for (i=0; i<n; i++){
printf("a[%d]=",i+1); scanf("%lf",&a);
if(a[i]==0){
printf("\n The Product P=%f",a);
printf("\n The Quotient to get impossible, since on zero to divide it is impossible!";);
break;
}
P=P*a;
D=D/a;
}
printf("\n The Product P=%lf",P);
printf("\n The Quotient D=%.10lf",D);
}
printf("\n\n Press any key to exit";);
free(a);
getch();
}

Ответить

Номер ответа: 3
Автор ответа:
 avdey



ICQ: 219571279 

Вопросов: 34
Ответов: 486
 Профиль | | #3 Добавлено: 27.12.06 11:13
Или Switch
?

Ответить

Номер ответа: 4
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 27.12.06 12:28
а?

Ответить

Номер ответа: 5
Автор ответа:
 Цивильный



Вопросов: 33
Ответов: 15
 Профиль | | #5 Добавлено: 28.12.06 00:33
Спасибо большое, SHARP, все нормально работает.

Ответить

Номер ответа: 6
Автор ответа:
 Djon



Вопросов: 61
Ответов: 471
 Web-сайт: www.vk-book.ru
 Профиль | | #6
Добавлено: 28.12.06 01:56
Вообщето легче всего было бы использовать do while

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам