Трехмерный массив, подсчет кол-ва символов и перевод градусы цельсия в фаренгейт и наоборот (Visual Studio 2008) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Нужна программа для посчета символов в строке. Вот что получилось:
#include<stdio.h>
void main()
{char z; int s=1;
for (;(z=getchar())!='.';)
if (z==' ')s++;}
printf ("Kol-vo simv=%d",s);
А получилось так, что он считает исключительно количество слов в строке, завершает подсчет посредством "." в предложении. Подскажите пожалуйста, что здесь нужно изменить, чтобы он ввел подсчет символов? Нашел здесь тему с задачей с подобной целью, но не смог разобраться, повидимому она была написана в другой программе, т.к. код на visual studio 2008 не подошел. Помимо этого есть еще кое-какие вопросы по задачам. К примеру надо написать задачу с трехмерным массивом на примере вот этого двумерного массива:
#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";}
}
}
}

Объяснение кода листинга программы

  1. Подключение заголовочного файла iostream.h для работы с потоками ввода-вывода.
  2. Использование пространства имен std, чтобы не писать std:: перед каждым использованием стандартной библиотеки.
  3. Объявление функции main(), которая является точкой входа в программу.
  4. Объявление трехмерного массива a[3][3][3] размером 3x3x3, который будет использоваться для хранения значений.
  5. Объявление переменных i, j, k, S1, S2, которые будут использоваться в цикле.
  6. Инициализация переменных S1 и S2 со значениями 0.
  7. Цикл for для прохода по первому измерению массива a.
  8. Внутри цикла for объявление вложенного цикла for для прохода по второму измерению массива a.
  9. Внутри вложенного цикла for объявление вложенного цикла for для прохода по третьему измерению массива a.
  10. Внутри вложенного цикла for присваивание значения суммы индексов i, j и k элементу массива a[i][j][k].
  11. Вывод значения элемента массива a[i][j][k] на консоль.
  12. Если значение k равно 1, то прибавление значения элемента массива a[i][j][k] к переменной S1.
  13. Вывод значения переменной S1 на консоль.
  14. Если значение k не равно 1, то вывод значения переменной S1 на консоль.
  15. Завершение вложенного цикла for для прохода по третьему измерению массива a.
  16. Завершение вложенного цикла for для прохода по второму измерению массива a.
  17. Завершение цикла for для прохода по первому измерению массива a.
  18. Ожидаемый результат: вывод значений элементов массива a и суммы S1 на консоль.
  19. Значения элементов массива a будут уникальными и неотрицательными, так как они вычисляются как сумма индексов i, j и k, которые находятся в диапазоне от 0 до 2.
  20. Значение переменной S1 будет увеличиваться на значение каждого элемента массива a, если его индексы i, j и k равны 1.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы