1. Se citesc de la tastatura doua numere intregi si un caracter. Daca acest caracter este '+', '-', '*' sau '/', realizati operatia respectiva intre numerele intregi citite si afisati rezultatul pe ecran. Sa se rezolve folosind instructiunea switch.
2. Se citeste de la tastatura un numar real cu 3 zecimale. Folosind instructiunea do...while, sa se mute virgula pe toate pozitiile interioare posibile in cadrul numarului initial si sa se afise rezultatul, cate un numar pe rand. De ex. 123,456 -> 12,3456 -> 1,23456
Răspunsuri la întrebare
Răspuns:
1)
#include <iostream>
using namespace std;
char semn;
int num1, num2;
int main(void) {
cin >> num1 >> num2;
cin >> semn;
switch(semn) {
case '+':
cout << num1 + num2;
break;
case '-':
cout << num1 - num2;
break;
case '*':
cout << num1 * num2;
break;
case '/':
cout << num1 / num2;
break;
}
}
2)
#include <iostream>
#include <fstream>
using namespace std;
#define nmax 200 // aici pui numarul maxim de elemente pe care il poti avea
ifstream read("vectori.txt");
int n, a[nmax + 1], x, sum, nrElem, i;
int main() {
read >> n;
for(i = 1; i <= n; ++i) {
read >> x;
a[++nrElem] = x;
if(i % 3 == 0) {
sum += x;
a[++nrElem] = sum;
sum = 0;
} else {
sum += x;
}
}
for(i = 1; i <= nrElem; ++i) {
cout << a[i] << " ";
}
return 0;
}
Explicație:
Ideea pe care am implementat-o e una simpla : pe masura ce citesc cele n elemente le pun in vector si, intre timp, in variabila suma adun elementele la care sunt....daca sunt pe o pozitie divizibila cu 3 (multiplu de 3) atunci nu uit sa adun elementul curent si il pun in vector, daca nu este pe o pizitie "din 3 in 3 " atunci il adaug la suma curenta....in final afisez elementele .... Bafta !!