Laboratório de Programação I (UFBA 2009.1): Prova AVI - Respostas do professor
From AdonaiMedrado.Pro.Br
Contents
Problema dos casais
#include <stdio.h> int main(void) { int n, i, k, b=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&k); b=(k%2) ? b+1 : b-1; } printf("%s\n",b?"N":"S"); return 0; }
Problema da soma reservada
#include <stdio.h> int rev(int k) { int i, c, r=0, d; c=(k<0) ? -k : k; for(d=1;(c/d)>=10;d*=10); for(i=d;c!=0;i/=10,c/=10) r+=(c%10)*i; return (k<0) ? -r : r; } int main(void) { int n1, n2; scanf("%d",&n1); scanf("%d",&n2); printf("%d\n",rev(rev(n1)+rev(n2))); }
Problema da palavra mágica
#include <stdio.h> #include <string.h> int comparar(const void *a, const void *b) { return *(char *)a-*(char *)b; } int main(void) { char s[101], p1[51]; int k, r; scanf("%s",s); k=strlen(s); if (!k%2) r=0; else { strcpy(p1,s); p1[k/2]='\0'; qsort(p1,k/2,sizeof(char),comparar); r=!strcmp(s+k/2,p1); } printf("%s\n",r?"S":"N"); return 0; }
Problema do conjunto e seus elementos únicos
#include <stdio.h> #include <stdlib.h> int comparar(const void *a, const void *b) { return *(int *)a-*(int *)b; } int main(void) { int i, n, ant, v[1000]; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",v+i); qsort(v,n,sizeof(int),comparar); ant=-1001; for(i=0;i<n;i++) { if (ant!=v[i]) { printf("%d\n",v[i]); ant=v[i]; } } return 0; }