Sabiranje velikih brojeva
08.07.2013. u 19:58 · pre 161 meseci
#1
Pozdrav,radio sam neki zadatak gde se sabiraju veliki brojevi i racuna im se suma.Probao sam preko stringova,ali mi ne radi..
Evo ga kod:
#include <stdio.h>
#include <string.h>
#include <math.h>
#define MAXL 200
int main(){
int n,max,i,j;
char t[MAXL],s[MAXL],p[MAXL];
printf("Unesite koliko brojeva zelite da saberete?");
scanf("%d",&n);
t[MAXL]=0;
p[MAXL]=0;
max=0;
for(i=0;i<n;i++){
gets(s);
if ((strlen(s)-1)>max) max=strlen(s)-1;
for(j=max;j>=0;j--){
t[j]=p[j]+s[j]; //tu mi smesta zbir,to je cifra
if(t[j]>9) {
p[j]=(t[j]%10); //ovo mi racuna prenos cifara
p[j]=t[j];
p[j]=p[j]+1;
}
else{
p[j]=t[j];
}
}
for(j=0;j<=max;j++){
printf("%c",p[j]);
}
printf("je suma.\n");
return 0;
}
Na izlazu mi uvek samo ispise "je suma.",nikad nece sumu,a i nece da mi ucita n brojeva,vec n-1..
Jel bi neko mogao da vidi u cemu je problem,bio bih mu/joj jako zahvalan:)))
Evo ga kod:
#include <stdio.h>
#include <string.h>
#include <math.h>
#define MAXL 200
int main(){
int n,max,i,j;
char t[MAXL],s[MAXL],p[MAXL];
printf("Unesite koliko brojeva zelite da saberete?");
scanf("%d",&n);
t[MAXL]=0;
p[MAXL]=0;
max=0;
for(i=0;i<n;i++){
gets(s);
if ((strlen(s)-1)>max) max=strlen(s)-1;
for(j=max;j>=0;j--){
t[j]=p[j]+s[j]; //tu mi smesta zbir,to je cifra
if(t[j]>9) {
p[j]=(t[j]%10); //ovo mi racuna prenos cifara
p[j]=t[j];
p[j]=p[j]+1;
}
else{
p[j]=t[j];
}
}
for(j=0;j<=max;j++){
printf("%c",p[j]);
}
printf("je suma.\n");
return 0;
}
Na izlazu mi uvek samo ispise "je suma.",nikad nece sumu,a i nece da mi ucita n brojeva,vec n-1..
Jel bi neko mogao da vidi u cemu je problem,bio bih mu/joj jako zahvalan:)))