11.03.2011, 21:25
|
#1
|
Пользователь
Регистрация: 21.11.2010
Сообщений: 16
|
Управление программой на Си
Нужно было сделать программу, чтобы она управлялась через switch-case
Вот что получилось:
Цитата:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <locale.h>
int* vvod_s_klavi(int size);
int* vvod_s_f(int size);
int vivod(int a[], int size);
int num_more_c(int a[], int size);
int* ssort(int a[], int size);
int mult(int a[], int size);
int main(void)
{
setlocale (LC_ALL, "Russian");
int a[500];
int size,i,b;
do
{
printf("Введите 1 - для ввода с клавиатуры\n");
printf("Введите 2 - для ввода из файла\n");
printf("Введите 3 - для вывода\n");
printf("Введите 4 - для нахождения элементов больших C\n");
printf("Введите 5 - для нахождения произведения\n");
printf("Введите 6 - для сортировки\n");
scanf("%d",&b);
switch(b)
{
case 1:vvod_s_klavi(a,size); break;
case 2:vvod_s_f(a,size); break;
case 3:vivod(a,size); break;
case 4 rintf("\nКоличество элементов больших С=%d",num_more_c(a,size)); break;
case 5 rintf("\nПроизведение=%d",mult(a ,size)); break;
case 6:ssort(a,size);
printf("\nОтсортированный массив");
for(i=0; i<size; i++)
{
printf("%d ",a[i]);
}break;
}
} while(b!=0);
printf("Введите количество элементов n= \n");
scanf("%d",&size);
getch();
return 0;
}
int vivod(int a[], int size)
{
int i;
printf("Массив:\n");
for(i=0; i<size; i++)
{
printf("%d",a[i]);
}
}
int* vvod_s_klavi(int a[],int size)
{
int i;
printf("Введите числа:\n");
for(i=0; i<size; i++)
{
scanf("%d",&a[i]);
printf("%d ",a[i]);
}
return a;
}
int* vvod_s_f(int a[],int size)
{
int i;
file*In;
In=fopen("f1.txt","r");
if(In)
for(i=0; i<size; i++)
{
fscanf(In, "%d", &a[i]);
}
fclos(In);
return a;
}
int num_more_c(int a[], int size)
{
int num=0,i,c;
printf("\nВведите С\n");
scanf("%d",&c);
for(i=0; i<size; i++)
{
if(a[i]>c)
{
num++;
}
}
return num;
}
int* ssort(int a[], int size)
{
int i,j,tmp;
for(i=0; i<size; i++)
{
for(j=i; j<size; j++)
{
if(a[i]>a[j])
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
}
return a;
}
int mult(int a[], int size)
{
int mult=1,i,mod_max=a[0],num_mod_max=0;
for (i=0; i<size; i++)
{
if (abs(a[i])>=mod_max)
{
mod_max=abs(a[i]);
num_mod_max=i;
}
}
for (i=num_mod_max+1; i<size; i++)
{
mult*=a[i];
}
return mult;
}
|
Программа не работает, чуствую где то запарка в функциях и управлении с ними. Помогите исправить программу!
|
|
|