Informatică, întrebare adresată de iepuras30, 9 ani în urmă

1.De elaborat un program ce calculeaza intrun tabel liniar de nr. intregi suma elementelor mai mici ca elementul maxim
2.De elaborat un program care calculeaza intrun tabel bidimensional 5*5 de nr. intregi
suma elementelor pozitive de pe diagonala secundara.
3.De elaborat un program care calculeaza intrun sir arbitrar de caractere introdus de la tastiera nr cuvintelor in sir.

Răspunsuri la întrebare

Răspuns de Razzvy
2
//Problema 1
#include <iostream>
using namespace std;

int main()
{
   int n, a[100], max = 0, s = 0, k = 0; //k numara de cate ori apare elementul maxim
   cin>>n;
   for(int i = 0; i < n; i++)
   {
      cin>>a[i];
      s += a[i];
      if(a[i] > a[max])
      {
         max = i;
         k = 1;
      }
      else if(a[i] == a[max])
         k++;
   }
   cout<<s - a[max] * k;
}

//Problema 2
#include <iostream>
using namespace std;

int main()
{
   int a[5][5], s = 0;
   for(int i = 0; i < 5; ++i)
      for(int j = 0; j < 5; ++j)
         cin>>a[i][j];
   
   for(int i = 0; i < 5; ++i)
      if(a[i][4 - i] % 2 == 0) s += a[i][4 - i];
   cout<<s;
}

//Problema 3
#include <iostream>
#include <cstring>
using namespace  std;

int main()
{
   char s[256];
   int cuv = 0;
   bool inceput = false;
   cin.getline(s, 255);
   for(int i = 0; i < strlen(s); ++i)
   {
      if(s[i] >= 'a' && s[i] <= 'z') inceput = true;
      else if(inceput)
      {
         cuv++;
         inceput = false;
      }
   }
   cout<<cuv;
}

Răspuns de lozanalex
1
Pentru Pascal

1)

var
  i,n,m,c:integer;
  a:array [1..10000] of integer;

begin
  read(n);
  for i:=1 to n do
    read(a[i]);
  m:=a[1];
  for i:=2 to n do
    if a[i]>m then m:=a[i];
  c:=0;
  for i:=1 to n do
    if a[i]=m then c:=c+1;
  write(c);
end.

2)

var
  a:array [1..5,1..5] of integer;
  i,j,s:integer;

begin
  for i:=1 to 5 do
    for j:=1 to 5 do
      read(a[i,j]);
  s:=0;
  for i:=5 downto 1 do
    if (a[i,6-i]>0) then s:=s+a[i][6-i];
  write(s);
end.

3)

var
  a:array [1..1000] of string;
  ac:integer;
  s:string;

procedure words(s:string);
var
  i:integer;
  x:string;
begin
  s:=s+' ';
 ac:=0;
  for i:=1 to length(s) do
  begin
    if (s[i]<>' ') then x:=x+s[i];
    if (s[i]=' ') and (length(x)<>0) then
    begin
      ac:=ac+1;
      a[ac]:=x;
      x:='';
    end;
  end;
end;

begin
  readln(s);
  words(s);
  write(ac);
end.

Pentru c++

1)

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int n,m,c;
    cin >> n;
    vector <int> a(n);
    for (int i=0; i<a.size(); i++)
        cin >> a[i];
    m=*max_element(a.begin(),a.end());
    cout << a.size()-count(a.begin(),a.end(),m);
    return 0;
}

2)

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    vector <vector <int> > a(5);
    for (int i=0; i<5; i++)
    {
        a[i].resize(5);
        for (int j=0; j<5; j++)
            cin >> a[i][j];
    }
    int s=0;
    for (int i=4; i>=0; i--)
        if (a[i][4-i]) s+=a[i][4-i];
    cout << s;
    return 0;
}

3)

#include <vector>
#include <iostream>

using namespace std;

vector <string> words(string s)
{
    vector <string> a;
    string x;
    s+=' ';
    for (int i=0; i<s.size(); i++)
    {
        if (s[i]!=' ') x+=s[i];
        if (s[i]==' ' && x!="")
        {
            a.push_back(x);
            x="";
        }
    }
    return a;
}

main()
{
    string s;
    getline(cin,s);
    vector <string> w;
    w=words(s);
    cout << w.size();
}
Alte întrebări interesante