Besoin d'un code de programme en c
Fermé
justelefils
Messages postés
26
Date d'inscription
mercredi 29 avril 2009
Statut
Membre
Dernière intervention
22 décembre 2014
-
29 avril 2009 à 01:12
justelefils Messages postés 26 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 22 décembre 2014 - 29 avril 2009 à 18:02
justelefils Messages postés 26 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 22 décembre 2014 - 29 avril 2009 à 18:02
A voir également:
- Besoin d'un code de programme en c
- Le code ascii en informatique - Guide
- Code puk bloqué - Guide
- Code de déverrouillage oublié - Guide
- Programme demarrage windows 10 - Guide
- Code activation windows 10 - Guide
4 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
29 avril 2009 à 09:46
29 avril 2009 à 09:46
Salut,
suis à la recherche d'un
Ben, tu nous montreras où t'en est avec la recherche, et on t'aidera pour la suite.
suis à la recherche d'un
Ben, tu nous montreras où t'en est avec la recherche, et on t'aidera pour la suite.
feadin91
Messages postés
257
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
28 avril 2010
89
29 avril 2009 à 09:33
29 avril 2009 à 09:33
Je sens qu'il s'agit d'un exercice qu'on t'a demandé de faire... ;)
Je vais pas te donner la réponse directement, mais plutôt une aide...
As-tu pensé à utiliser des tableaux à deux dimensions? (int **tab)
Pour écrire ou lire dans la case i-j : tab[i][j]
Je suis pas un pro du C, donc prends mes indications avec des pincettes.
J'avoue que en C ça doit être assez chiant... En C++ tu l'aurais déjà terminé les doigts dans le nez et les yeux bandés...
Je vais pas te donner la réponse directement, mais plutôt une aide...
As-tu pensé à utiliser des tableaux à deux dimensions? (int **tab)
Pour écrire ou lire dans la case i-j : tab[i][j]
Je suis pas un pro du C, donc prends mes indications avec des pincettes.
J'avoue que en C ça doit être assez chiant... En C++ tu l'aurais déjà terminé les doigts dans le nez et les yeux bandés...
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
29 avril 2009 à 10:46
29 avril 2009 à 10:46
Salut
J'avoue que en C ça doit être assez chiant... En C++ tu l'aurais déjà terminé les doigts dans le nez et
les yeux bandés...
En quoi le faire en C++ serait "beaucoup" plus simple qu'en C ?
J'avoue que en C ça doit être assez chiant... En C++ tu l'aurais déjà terminé les doigts dans le nez et
les yeux bandés...
En quoi le faire en C++ serait "beaucoup" plus simple qu'en C ?
feadin91
Messages postés
257
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
28 avril 2010
89
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
29 avril 2009 à 10:56
29 avril 2009 à 10:56
La déclaration et l'utilisation d'un tableau en 2D en C est beaucoup plus hasardeuse et "chiante" (excusez moi du mot) qu'en C++...
Du moins c'est mon avis tout à fait personnel.
Du moins c'est mon avis tout à fait personnel.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
feadin91
Messages postés
257
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
28 avril 2010
29 avril 2009 à 11:09
29 avril 2009 à 11:09
Salut,
On veut voir des exemples.
On veut voir des exemples.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
feadin91
Messages postés
257
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
28 avril 2010
29 avril 2009 à 11:22
29 avril 2009 à 11:22
hasardeuse
Il n'y a pas de place au hasard dans la déclaration de tableaux en 2D ^^. Soit tu le fais bien, soit tu le fais mal, tout comme en C++.
"chiante"
J'imagine que tu parles de tableaux "dynamiques" :
La syntaxe est légèrement moins lourde en C++ :
Mais bon, de là à dire que c'est beaucoup plus pénible, faut pas abuser ^^.
De plus, en C, tu peux utiliser le VLA apparu avec la norme C99 (en C++, ce n'est pas standard), et utiliser :
Il n'y a pas de place au hasard dans la déclaration de tableaux en 2D ^^. Soit tu le fais bien, soit tu le fais mal, tout comme en C++.
"chiante"
J'imagine que tu parles de tableaux "dynamiques" :
La syntaxe est légèrement moins lourde en C++ :
En C : scanf("%d",&taille); int *tab = malloc( sizeof(*tab) * taille); .... free(tab); En C++ : std::cin >> taille; int *tab = new int [taille]; .... delete []tab;
Mais bon, de là à dire que c'est beaucoup plus pénible, faut pas abuser ^^.
De plus, en C, tu peux utiliser le VLA apparu avec la norme C99 (en C++, ce n'est pas standard), et utiliser :
scanf("%d",&taille); int tab[taille];
justelefils
Messages postés
26
Date d'inscription
mercredi 29 avril 2009
Statut
Membre
Dernière intervention
22 décembre 2014
29 avril 2009 à 11:43
29 avril 2009 à 11:43
en faite c'est pas un exercice d'ecole mais un exercice personnel.jai commencé et je n'arrive pas à faire les 3 parties ennoncées..la preuve voici ce que jai fait:
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
void saisie_somme(int *A,int *B,int *C,int n)
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("A[%d,%d] \n",i,j);
scanf(" \n %d" , &A[i*n+j]);
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("B[%d,%d] \n",i,j);
scanf(" \n %d" , &B[i*n+j]);
}
}
void affichage(int *C,int n)
{
int i,j;
printf("Affichage du tableau \n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(j==0)
{
printf("\n %d \t",C[i*n+j]);
}
else
{
printf("\n %d \t",C[i*n+j]);
}
}
main()
{
int n;
int *A,*B,*C;
printf("Donner n \n");
scanf("\n %d",&n);
A=(int*)malloc(n*n*sizeof(int));
B=(int*)malloc(n*n*sizeof(int));
C=(int*)malloc(n*n*sizeof(int));
saisie_somme(A,B,C,n);
affichage(C,n);
}
#include<stdlib.h>
#include<stdio.h>
#define NC 3
#define NL 3
void main()
{
int i,j,mat1[NL][NC],mat2[NL][NC];
int mat3[NL][NC],m,l,k,n;
for(i=0;i<NL;i++)
{
for(j=0;j<NC;j++)
{
printf("valeur de la ligne %d et de la colonne %d",i,j);
scanf("\n %d",&mat1[i][j]);
}
}
for(i=0;i<NL;i++)
{
for(j=0;j<NC;j++)
{
printf("la ligne %d et la colonne %d",i,j);
scanf("\n %d",&mat2[i][j]);
}
}
l=m=n=k=0;
for(i=0;i<NL;i++)
{
for(j=0;j<NC;j++)
{
mat3[n][m]=mat1[i][j]+mat2[k][l];
k++;
m++;
}
l++;
n++;
}
for(n=0;n<NL;n++)
{
for(m=0;m<NC;m++)
{
printf("\n %d",&mat3[m][n]);
}
}
}
voila ce que j'ai fait.
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
void saisie_somme(int *A,int *B,int *C,int n)
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("A[%d,%d] \n",i,j);
scanf(" \n %d" , &A[i*n+j]);
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("B[%d,%d] \n",i,j);
scanf(" \n %d" , &B[i*n+j]);
}
}
void affichage(int *C,int n)
{
int i,j;
printf("Affichage du tableau \n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(j==0)
{
printf("\n %d \t",C[i*n+j]);
}
else
{
printf("\n %d \t",C[i*n+j]);
}
}
main()
{
int n;
int *A,*B,*C;
printf("Donner n \n");
scanf("\n %d",&n);
A=(int*)malloc(n*n*sizeof(int));
B=(int*)malloc(n*n*sizeof(int));
C=(int*)malloc(n*n*sizeof(int));
saisie_somme(A,B,C,n);
affichage(C,n);
}
#include<stdlib.h>
#include<stdio.h>
#define NC 3
#define NL 3
void main()
{
int i,j,mat1[NL][NC],mat2[NL][NC];
int mat3[NL][NC],m,l,k,n;
for(i=0;i<NL;i++)
{
for(j=0;j<NC;j++)
{
printf("valeur de la ligne %d et de la colonne %d",i,j);
scanf("\n %d",&mat1[i][j]);
}
}
for(i=0;i<NL;i++)
{
for(j=0;j<NC;j++)
{
printf("la ligne %d et la colonne %d",i,j);
scanf("\n %d",&mat2[i][j]);
}
}
l=m=n=k=0;
for(i=0;i<NL;i++)
{
for(j=0;j<NC;j++)
{
mat3[n][m]=mat1[i][j]+mat2[k][l];
k++;
m++;
}
l++;
n++;
}
for(n=0;n<NL;n++)
{
for(m=0;m<NC;m++)
{
printf("\n %d",&mat3[m][n]);
}
}
}
voila ce que j'ai fait.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
29 avril 2009 à 15:00
29 avril 2009 à 15:00
Salut,
Créer deux fichiers comme tu as fait, c'est bien. Mais par contre, il ne faut qu'un main, et créer des fichiers headers contenant le prototype des fonctions.
Le prototype de main sans arguments c'est : int main(void);. N'oublie pas le return 0;
scanf("\n %d",&n);
Ne mets pas de \n dans le scanf. Tout simplement : scanf("%d",&n);
printf("\n %d",&mat3[m][n]);
Là, tu affiches l'adresse. Pour afficher le contenu : printf("\n %d",mat3[m][n])
l=m=n=k=0;
for(i=0;i<NL;i++)
{
for(j=0;j<NC;j++)
{
mat3[n][m]=mat1[i][j]+mat2[k][l];
k++;
m++;
}
l++;
n++;
}
Tu souhaites réaliser quelle opération matricielle avec ça ?
Cdlt
Créer deux fichiers comme tu as fait, c'est bien. Mais par contre, il ne faut qu'un main, et créer des fichiers headers contenant le prototype des fonctions.
Le prototype de main sans arguments c'est : int main(void);. N'oublie pas le return 0;
scanf("\n %d",&n);
Ne mets pas de \n dans le scanf. Tout simplement : scanf("%d",&n);
printf("\n %d",&mat3[m][n]);
Là, tu affiches l'adresse. Pour afficher le contenu : printf("\n %d",mat3[m][n])
l=m=n=k=0;
for(i=0;i<NL;i++)
{
for(j=0;j<NC;j++)
{
mat3[n][m]=mat1[i][j]+mat2[k][l];
k++;
m++;
}
l++;
n++;
}
Tu souhaites réaliser quelle opération matricielle avec ça ?
Cdlt
justelefils
Messages postés
26
Date d'inscription
mercredi 29 avril 2009
Statut
Membre
Dernière intervention
22 décembre 2014
29 avril 2009 à 18:02
29 avril 2009 à 18:02
merci pou la modif..
en faite ces deux programmes differents..jai fait de deux manieres..le premier programme est la saisie et laffichage du reslutat et le deuxieme programme ces la somme..maintenant jai besoin dun programme(fonction qui me permet de calculer la transposée, l'inverse et le determinant d'une matrice...
merci
en faite ces deux programmes differents..jai fait de deux manieres..le premier programme est la saisie et laffichage du reslutat et le deuxieme programme ces la somme..maintenant jai besoin dun programme(fonction qui me permet de calculer la transposée, l'inverse et le determinant d'une matrice...
merci