Трехмерный массив, подсчет кол-ва символов и перевод градусы цельсия в фаренгейт и наоборот (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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д