Трехмерный массив, подсчет кол-ва символов и перевод градусы цельсия в фаренгейт и наоборот (Visual Studio 2008) - C (СИ)
Формулировка задачи:
Нужна программа для посчета символов в строке.
Вот что получилось:
А получилось так, что он считает исключительно количество слов в строке, завершает подсчет посредством "." в предложении.
Подскажите пожалуйста, что здесь нужно изменить, чтобы он ввел подсчет символов?
Нашел здесь тему с задачей с подобной целью, но не смог разобраться, повидимому она была написана в другой программе, т.к. код на visual studio 2008 не подошел.
Помимо этого есть еще кое-какие вопросы по задачам.
К примеру надо написать задачу с трехмерным массивом на примере вот этого двумерного массива:
Очень надеюсь на вашу помощь.
Если есть такая возможность, то опишите построчно каждый процесс который происходит. Буду очень признателен.
пардон, все работает, пока постил нашел рабочую версию :)
#include<stdio.h>
void main()
{char z; int s=1;
for (;(z=getchar())!='.';)
if (z==' ')s++;}
printf ("Kol-vo simv=%d",s);#include<iostream>
using namespace std;
void main()
{int i; int j; int a[3][3]; int b[3][3]; int c[3][3]; int S=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{cout<<"a["<<i<<"]""["<<j<<"]=";
cin>>a[i][j];}
for(i=2;i>=0;i--)
for(j=2;j>=0;j--)
{cout<<"b["<<j<<"]""["<<i<<"]=";
cin>>b[j][i];}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{c[i][j]=a[i][j]+b[j][i];
cout<<"c["<<i<<"]""["<<j<<"]="<<c[i][j]<<"\n";}
}
и наконец третья задача, цель которой заключается в том, чтобы перевести целсии в фаренгейты и наоборот. На примере вот этой задачи:
#include<iostream>
using namespace std;
void f1(int b)
{int F;
F=(9*b)/5+32;
cout<<"Farenheit="<<F<<"\n";}
void f2(int b)
{int C;
C=(b-32)*5/9;
cout<<"celsius="<<C<<"\n";}
void main()
{int b; char a;
cout<<"esli hotite perevesti iz F v C nazhmite f, esli hotite C v F - c""\n";
cout<<"a=";
cin>>a;
cout<<"vvedite znachenie""\n";
cout<<"b=";
cin>>b;
if(a=='f')
{f1(b);}
else if(a=='c')
{f2(b);}}
Запускаю программу, выдает ошибку, не могу понять в чем проблема. Очень надеюсь на вашу помощь.
Решение задачи: «Трехмерный массив, подсчет кол-ва символов и перевод градусы цельсия в фаренгейт и наоборот (Visual Studio 2008)»
textual
Листинг программы
#include<iostream.h>
using namespace std;
void main()
{int a[3][3][3],i,j,k,S1=0,S2=0;
for (i=0; i<3; i++)
{
for (j=0; j<3; j++)
{
for (k=0; k<3; k++)
{a[i][j][k]=i+j+k;
cout<<"a["<<i<<"]["<<j<<"]["<<k<<"]="<<a[i][j][k]<<"\n";
if (k==1)
{S1=a[i][j][k]+S1;
cout<<"Sum1="<<S1<<"\n";}
else cout<<"Sum2="<<S1<<"\n";}
}
}
}
Объяснение кода листинга программы
- Подключение заголовочного файла
iostream.hдля работы с потоками ввода-вывода. - Использование пространства имен
std, чтобы не писатьstd::перед каждым использованием стандартной библиотеки. - Объявление функции
main(), которая является точкой входа в программу. - Объявление трехмерного массива
a[3][3][3]размером 3x3x3, который будет использоваться для хранения значений. - Объявление переменных
i,j,k,S1,S2, которые будут использоваться в цикле. - Инициализация переменных
S1иS2со значениями 0. - Цикл
forдля прохода по первому измерению массиваa. - Внутри цикла
forобъявление вложенного циклаforдля прохода по второму измерению массиваa. - Внутри вложенного цикла
forобъявление вложенного циклаforдля прохода по третьему измерению массиваa. - Внутри вложенного цикла
forприсваивание значения суммы индексовi,jиkэлементу массиваa[i][j][k]. - Вывод значения элемента массива
a[i][j][k]на консоль. - Если значение
kравно 1, то прибавление значения элемента массиваa[i][j][k]к переменнойS1. - Вывод значения переменной
S1на консоль. - Если значение
kне равно 1, то вывод значения переменнойS1на консоль. - Завершение вложенного цикла
forдля прохода по третьему измерению массиваa. - Завершение вложенного цикла
forдля прохода по второму измерению массиваa. - Завершение цикла
forдля прохода по первому измерению массиваa. - Ожидаемый результат: вывод значений элементов массива
aи суммыS1на консоль. - Значения элементов массива
aбудут уникальными и неотрицательными, так как они вычисляются как сумма индексовi,jиk, которые находятся в диапазоне от 0 до 2. - Значение переменной
S1будет увеличиваться на значение каждого элемента массиваa, если его индексыi,jиkравны 1.