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

 Se introduc două numere, a şi b, a<b<5000000. Să se afişeze ultima cifră a sumei tuturor numerelor aflate între a şi b. Exemple: Date de intrare a=12 b=14 date de ieşire 9 ; date de intrare a=1000000 b=3000000 date de ieşire 0. In limbajul C.

Problema anul 1 automatica.
Multumesc anticipat!

Răspunsuri la întrebare

Răspuns de rokaijano
1
Algoritmul principal este: 
#include <stdio.h>
int main(){
int a,b;
printf("a, b = ");
scanf("%u", &a);
scanf("%u", &b);

if( (a >= b) || (a > 
5000000) || (b > 5000000)){
printf("Eroare");
return 1;
}
int sum;
for (int i =a; i<=b; i++){
sum += i;
}
result = sum % 10;
printf("Rezultatul este: %d", result);
return 0;
}

#Nu este testat

Lupu96: Nu merge.
Lupu96: asta merge: #include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int main()
{
int a,b,s;
printf ("a= ");
scanf ("%d",&a);
printf ("b= ");
scanf ("%d",&b);
s=0;
int i;
for(i=a;i<=b;i++)
{
s=s+i%10;
}
s=s%10;
printf ("s= %d",s);
return 0;
}
rokaijano: Numai headerul de stdio iti trebuie. In codul tau nu ai criteriile puse mai sus.
rokaijano: #include <stdio.h>
int main(){
int a,b;
printf("a = ");
scanf("%d", &a);

printf("a = ");scanf("%d", &b);

if( (a >= b) || (a > 5000000) || (b > 5000000) ){
printf("Eroare");
return 1;

}
int sum = 0;
for (int i =a; i<=b; i++){
sum += i;

}
printf("%d", sum);
int result = sum % 10;
printf("Rezultatul este: %d", result);
return 0;

}
rokaijano: printf("a = ");
scanf("%d", &a);

printf("b = ");scanf("%d", &b);
rokaijano: Principala eroara, la primul cod, era ca c++-ul initiaza variabilele cu NULL/0/0.0/False, iar C-ul nu. Ca sa inveti si din greseala altora :P
Alte întrebări interesante