Однозначно и безоговорочно. Только Ибатуллин все задачи задавал, а не две.
ПнаЯВУ (C)
Сообщений 11 страница 20 из 68
Поделиться122010-01-22 18:31:58
Задачка №29
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
long columnMul(int **matr, int rows, int column_index){
long mul = 1L;
int i;
for ( i = 0; i < rows; ++i )
mul *= matr[i][column_index];
return mul;
}
/*
Дан двухмерный массив.
Выяснить является ли произведение элементов заданного столбца массива трехзначным числом.
*/
#define ROWS 3
#define COLS 10
int main(void){
int **matr, i, j;
long mul;
if ( ( matr = (int**)calloc(ROWS, sizeof(int*)) ) == NULL )
exit(1);
for ( i = 0; i < ROWS; ++i )
if ( ( matr[i] = (int*)calloc(COLS, sizeof(int)) ) == NULL )
exit(1);
srand(time(NULL));
printf("\nMatrix:\n");
for ( i = 0; i < ROWS; ++i )
for ( j = 0; j < COLS; ++j )
printf( ( j < COLS - 1 ) ? "%d " : "%d\n", ( matr[i][j] = rand() % 10 ));
do {
printf("\nColumn index (0 - %d): ", COLS - 1);
if ( scanf("%d", &j) != 1 )
exit(1);
} while ( ( j < 0 || j > COLS - 1 ) && printf("Bad value!\n") );
mul = columnMul(matr, ROWS, j);
printf("Multiply of column is %ld. It's %sa three digits number.", mul,
( mul > 99 && mul < 1000 ) ? "" : "not ");
for ( i = 0; i < ROWS; ++i )
free(matr[i]);
free(matr);
exit(0);
}
Правельнее будет №13
Поделиться132010-01-22 18:40:35
И в каком компиляторе это открывать?
Поделиться142010-01-22 18:42:25
Задача №2. Дан двухмерный целых чисел массив. Вывести все номера эл., оканчивающихся цифрой 0, если таких элементов нет, то вывести соответствующее сообщение.
Вырезка
k = 0; //Пока нужных элементов нет
for(i=0; i<N; i++)
for(j=0; j<M; j++) {
if ((M[i][j] %10)==0) {
k++;
printf(" i=%d j=%d\n", i, j);
}
}
printf(" Найдено %d чисел\n", k);
Поделиться152010-01-22 18:45:02
И в каком компиляторе это открывать?
Просил в Turbo c, похоже, что С++
Microsoft Visual C++
Отредактировано Камиль (2010-01-22 18:46:48)
Поделиться162010-01-22 18:48:15
Открывается. Но шота я не въезжаю.
Поделиться172010-01-22 18:49:40
Задача №1.
Основная часть:
int A[N][M]; //Данный массив
for (k=0; k<N*M; k++) {
i = k / M; // Номер строки
j = k % M; // % - остаток от деления = номер столбца
i0 = (k-1) / M; // То же для предыдущего элемента
j0 = (k-1) % M;
if (k > 0 && M[i][j] < M[i0][j0]) {
tmp = M[i][j];
M[i][j] = M[i0][j0];
M[i0][j[0] = tmp;
}
}
Можно по другому:
for(int i=1; i<N; i++)
{
for(int j=1; j<N; j++)
if(mas[i][j]< mas[i][j-1])
{
temp=mas[i][j+1];
mas[i][j+1]=mas[i][j];
mas[i][j]=temp;
{
{
Отредактировано Камиль (2010-01-22 18:55:15)
Поделиться182010-01-22 19:51:08

Отредактировано Рентик (2010-01-27 00:25:49)
Поделиться192010-01-22 21:12:44
Листинг MASSIV3
#include<stdio.h>
#include<math.h>
#include<conio.h>
main()
{
int a[10],i,k;k=0;
clrscr();
for(i=0;i<10;i++)
{
a[i]=rand();
printf("%8d",a[i]);
}
for(i=0;i<9;i++)
{
if (a[i]%2==0)
if (a[i+1]%2==0)
k=k+1;
}
printf("Chislo par=%d",k);
getch();
return 0;
}

Поделиться202010-01-22 22:34:07
Решения чего ?