J'essayais de résoudre ce problème, mais ce message est apparu après avoir terminé la première boucle de test, et quand je l'ai téléchargé sur codeforces, il obtient un verdict d'erreur d'exécution!Erreur d'exécution du tableau 2D allouée dynamiquement
Étant donné 2D Tableau d'entiers de taille N * N. Imprime la somme des nombres carrés parfaits.
Par exemple, 25, 16, 36 et 9 sont des nombres carrés parfaits. Mais 35, 17, 23 et 11 ne le sont pas.
Entrée
Votre entrée est composée de tests T (1 ≤ T ≤ 10^2). Chaque cas de test contient seulement 1 entiers N (1 ≤ N ≤ 10^2). N lignes suivent chaque ligne contient N entiers séparés par des espaces (1 ≤ Nij ≤ 10^2).
Sortie
Pour chaque test, imprimez un seul entier sur une seule ligne, la somme requise.
entrée de l'exemple
2
2
9 97
8 56
3
1 18 6
16 42 100
25 16 17
sortie:
9
158
code:
void main()
{
int n, x, **z, m, i, j, q, p, sum;
float y;
scanf("%d", &x);
for (i = 0; i < x; i++)
{
sum = 0;
scanf("%d", &n);
z = (int**)malloc(sizeof(int*)*n);
for (j = 0; j < n; j++)
z[j] = (int*)malloc(sizeof(int)*n);
for (p = 0; p < n; p++)
for (q = 0; q < n; q++)
{
scanf("%d", &z[p][q]);
m = sqrt(z[p][q]);
y = sqrt(z[p][q]) - m;
if ((y) == 0)
sum += z[p][q];
}
printf("%d\n", sum);
for (j = 0; j < n; j++)
free(z[i]);
free(z);
}
return;}
image of message i get when i debug on VSc++
Update: libre (z [i]) a été modifié pour être libre (z [j])
Mise à jour: merci pour jpw cela a bien fonctionné dans VS, mais cette fois a entraîné une erreur de compilation dans Codeforces plutôt qu'une erreur d'exécution.
[S'il vous plaît voir cette discussion sur les raisons de ne pas jeter la valeur de retour de 'malloc()' et de la famille dans 'C'.] (http://stackoverflow.com/q/605845/2173917). –
Quelle erreur de compilation obtenez-vous? –
Impossible de compiler le fichier: program.cpp (25): erreur C2668: 'sqrt': appel ambigu à la fonction surchargée il pourrait être 'long double sqrt (long double)', ou float sqrt (float) ', ou 'double sqrt (double)' en essayant de faire correspondre la liste d'arguments '(int)' –