Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pregunta 1.1
#include<stdio.h>
int main(){
int i,j,k,f,c,num;
int a[11][11];
FILE *p;
p=fopen("sudoku.txt","r");
for(i=1;i<=9;i++){
for(j=1;j<=9;j++) fscanf(p,"%d", &a[i][j]);
}
printf("SUDOKU\n");
for(i=1;i<=9;i++){
for(j=1;j<=9;j++) {
printf("%9d", a[i][j]);
}
printf("\n");
}
printf("\n\n");
for(i=1;i<=9;i++)
if(a[i][c]==num) { printf("El valor ingresado se repite en la misma
columna\n");
}
}
else { printf("Casilla [%d][%d] OCUPADA \n",f,c);}
Pregunta 1.2
#include<stdio.h>
main(){
int o=0,e=0,i,j;
int f,c;
int x[10][10];
FILE *a;
a=fopen("SUDOKU.txt","r");
for (i=1;i<=9;i++){
for(j=1;j<=9;j++) {
fscanf(a,"%d",&x[i][j]);
}
}
//Análisis por filas
for(f=1;f<=9;f++) for (i=1;i<=9;i++){
for(j=1;j<=9;j++) {
if(i!=j){
if(x[f][i]==x[f][j]){
//printf("error:%d=%d\n%d,%d\n",x[f][i],x[f][j],i,j);
x[f][i]=0;
e++;
}
}
}
}
//Análisis por columnas
for(c=1;c<=9;c++) for (i=1;i<=9;i++){
for(j=1;j<=9;j++) {
if(i!=j){
if(x[i][c]==x[j][c]){
//printf("error:%d=%d\n%d,%d\n",x[i][c],x[j][c],i,j);
x[j][c]=0;
e++;
}
}
}
}
if(e%2==0) e=e/2;
else e=(e+1)/2+1;
printf("LOS ERRORES FUERON CORREGIDOS CON 0\n");
printf("Numero de numeros errados: %d\n",e);
for (i=1;i<=9;i++){
for(j=1;j<=9;j++) {
printf("%d\t",x[i][j]);
o++;
if(o==9) printf("\n");
if(j==9) o=0;
}
}
} // Solución tomada de 20202052F REYNOSO TORPOCO, GERALDINE FIORELLA
Pregunta 2.1
Algoritmo de solución
Para resolver la pregunta hay que tener presente que los números son de
hasta 20 dígitos y por lo mismo no pueden almacenarse en un solo número.
#include<stdio.h>
#include<math.h>
int main(){
int a[40],b[21],c[40],n1,n2=0,r[30],i,j,k,m,t;
FILE *f;
f=fopen("multiplicar.dat","r");
fscanf(f,"%d",&n1);
for(j=1;j<=30;j++) a[j]=0;
for(i=n1;i>=1;i--) fscanf(f,"%d",&a[i]);
for(i=4;i>=1;i--) fscanf(f,"%d",&b[i]);
for(i=4;i>=1;i--) n2=n2+b[i]*pow(10,i-1);
k=0;
r[0]=0;
printf("primer numero: ");
for(i=n1;i>=1;i--) printf("%d",a[i]);
printf("\n");
printf("segundo numero: ");
printf("%d\n",n2);
for(i=1;i<=30;i++) c[i]=0;
for(i=1;i<=30;i++){
k++;
c[k]=(r[k-1]+a[i]*n2)%10;
r[k]=(r[k-1]+a[i]*n2-c[k])/10;
}
t=0;
while(t==0){
k--;
if(c[k]!=0) {
t=1;
m=k;
}
}
printf("resultado: ");
for(j=m;j>=1;j--) printf("%d",c[j]);
return 0;
} // Solución tomada de 20200067F MARIN AQUINO, AXEL EDUARDO