PDA

Просмотр полной версии : Задачки по С



-zik-
21.01.2006, 01:46
Есть вот такие задания:

Подсчитайте сумму нечетных элементов массива и количество элементов, значение которых равно нулю. Размер массива 10 элементов, значения которых задаются с клавиатуры пользователем.

Вот что я смог родить, вроде правильно, но никак не хочет вводиться с клавиатуры ((


#include <stdio.h>
#include <stdlib.h>

int main(void){

int mas[10];
int i,k,p,m;
char ch[10];
k=0; p=0;
for(i=0; i<=9; i++){
//mas[i]=rand();
mas[i]=getchar();
printf("%d\n", mas[i]);
m=mas[i]%2;
if(mas[i]==0 || m > 0){
k++; p+=mas[i];
}
}
p=p/k;
printf("Srednee sna4enie: %d\n", p);
return 0;
}

Так вот вопрос как сделать чтоб оно вводило числа с клавиатуры и как ограничит rand() чтоб он например выводил значения до 100.

__________________________________________________ ___
Написать программу меняющую порядок следования элементов массива на противоположный (то есть первый элемент становится последним, а последний - первым; второй элемент становится предпоследним, а предпоследний - вторым и так далее) и выводящую результирующий массив на экран. Элементы массива вводятся пользователем с клавиатуры.




#include <stdio.h>

int main(void) {

int mas[5]={1,2,3,4,5};
int p=0, i;
for (i=0;i<3; i++){
printf("%d\t", mas[i]);
p=mas[i];
printf("%d\t", p);
mas[i]=mas[4-i];
mas[4-i]=p;
printf("%d\n", mas[i]);
}
return 0;
}return 0;
}

А в этом я вобще запутался ....

Kolinus
23.01.2006, 11:26
в чем ты во второй запутался ?
в первой - гетчар не лучший вариант он вернет тебе код символа (для 1 будет 49 если не ошибаюсь)
для чтения с клавиатуры лучше пользовать scanf("%d",&mas[i])
для ограничения рандома сотней просто выводишь формулу которая это сделает в общем случае формула такая:
p= Const * rand() / MAX_RAND const - твой верхний предел (100), MAX_RAND - максимальное значение которое может принимать рандом генератор (как правило 1 либо MAX_INT зависит от языка/библиотек )

BAHTY3
27.01.2006, 21:31
по первому примерно следующее


#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 10
void main()
{
int i=0;
int sum=0;
int mass[MAXSIZE];
if (i=0,i<MAXSIZE,i++)
{
scanf("%d",mass[i]);
printf("%d \n",mass[i]);
}
if (i=0,i<MAXSIZE,i+=2)
{
sum=sum+mass[i];
}
printf("sum=%d",sum);
}//end of main

ну а по второй части просто проверяй каждое число if (x<100)
если да то все гуд и тд....[/code]