|
Dernière réponse | |
---|---|
Sujet : DEVOIR POUR DEMAIN!!!! HELP!!! (language C) | |
Alan150382 | merci a tous |
Aperçu |
---|
Vue Rapide de la discussion |
---|
Alan150382 | merci a tous |
antp |
|
nicotine | je penserais a la fonction isalpha(char) |
Bounga69 | outch j'crois qu'j'ai fait une connerie. Il vaut mieux garder ca :
while (c!='\n') { if((c=='a' || c=='e' || etc ..) || (c=='A' || c=='E' etc)) voy++; } la précipitation c'est pas bien quand on est fatigué. |
jupiler |
|
antp |
[edit]--Message édité par antp--[/edit] |
Bounga69 | gilou, c'est pas mal. Effectivement mon programme vérifie caractère par caractère. Je programme en Visual C++ et actuellement c'est la seule méthode que je connaisse. Mais je vais essayer d'adapter la tienne. |
gilou | C'est pas faux ton approche, mais fortement inefficace par rapport a ce que j'ai ecrit:
Tu avances caractere par caractere, et tu testes pour chaque caractere. Ce que j'ai file avance mot par mot, et se positionne directos sur les caracteres voyelles, sautant les consonnes a chaque etape. A+, |
Pschitt | Moi j'utiliserais une fonction déja toute faite : strchr de string.h
#include<stdio.h> #include<string.h> #include<conio.h> void main() { char car; int compteur; car=' '; compteur=0; clrscr(); while((car=getchar())!='*') if(strchr("aeiou",car)) /* Ici strchr compte le nbre d'occurrence car dans la chaîne "aeiou" */ compteur++; printf("\nLe nombre de voyelle dans la ligne est %d",compteur); getch(); } |
gilou | Tiens, voici un programme qui marche, contrairement a ce que j'ai lu plus haut. Car faudrait pas oublier que scanf s'arretent au premier blanc...
Et pas besoin de regarder les voyelles une par une, il y a des fonctions de la librairie std pour cela. Le code ci dessous prend une ou plusieurs lignes, il n'arrete la lecture clavier que lorsque une * a ete tapee dans la ligne. Il ne compte pas les voyelles qui sont eventuellement tapees apres le * . A toi d'adapter selon tes besoins. #include <stdio.h> #include <string.h> int main(void) { char input[255]; char *aux=NULL; int count=0; printf("*** Ce source viens de Hardware.fr ***\n" ); /* indispensable */ printf("Veuillez entrer une chaine de caracteres terminee par *\n" ); printf(">" ); /* pour faire joli: un prompt */ fflush(NULL); /* flushe tout stream en output */ while (scanf("%s",&input)) { aux=input; while (aux && (aux=strpbrk(aux,"aeiouAEIOU*" ))) { if (*aux == '*') goto done; count++; aux++; } } done: printf("Le nombre de voyelles avant l'* est %d.\n",count); return 0; } A+, |
Bounga69 | bon, apparemment, c'est plus simple que ça, tu fais ça:
char phrase[n]; //déclaration du tableau contenant la phrase, n fixé. int voy=0; //déclaration du compteur et initialisation pour éviter les surprises dans le corps du programme tu mets; i=0; while (phrase[i] != '\n') { if (((phrase[i]>65) && (phrase[i]<90)) || ((phrase[i]>97) && (phrase[i]<122))) voy++; //si on trouve une voyelle, on incrémente voy i++; //incrémentation de i pour pouvoir passer au caractère suivant } tu utilises quoi comme compilateur ? [edit]--Message édité par Bounga69--[/edit] |
Bounga69 | bon c'est un truc de base ça. Allez, je te file le principale, à toi de le transcrire :
while (c!='\n') { if((c=='a' || c=='e' || etc ..) || (c=='A' || c=='E' etc)) voy++; } Sinon tu peux donner les intervalles des caractères ASCII, sachant que les majuscules sont comprises entre la position 65 et la position 90, les minuscules entre la position 97 et la position 122, c'est plus fastoche, c'est moins lourd et tout prof appréciera plus à mon avis. Je ne me souviens plus de la fonction ASCII qui le fait, dont je l'appelerais ASCII, ok? On a donc: While(c!='\n') { if (((ASCII(c)>65) && (ASCII(c)<90))||((ASCII(c)>97) && (ASCII(c)<122))) voy++; } Voilà. |
la viper | t'es pas obligé de sauvegarder les valeurs je suppose ?
donc debut valeur = 0; c <- lecture caractere tantque (c != *) faire si (voyelle(c)) valeur <- valeur+1 finsi c <- lecture caractere fintq retourne valeur fin voyelle(c) debut si ( c = a,e,i,o,u,y) retourne 1 sinon retourne 0 finsi fin |
mystereetbouledegomme | En francais ca donne koi? Tu veux un soft qui compte le nombre de chiffre d'un nombre? Ben tu fais ca : cin >> chiffre v=0; while(chiffre !=0) { chiffre=chiffre/10; v=v+1; } |
Alan150382 | j'ai un ptre exo celui la c plus compliker:
ecrir un prog ki calcule le nombre de chiffre de xxx et yyy ou xxx est l'entier entré, et yyy est son nombre de chiffres. ameliorer le prog de mise a jour d'un compte bancaire : l'utilisateur peut faire plusieurs operation successives lorskil a terminer il entre au clavier la lettre f. |
Alan150382 | en faite c =a c pendant le copier coller il y a eu un blem |
HelloWorld | oups ... les majuscules :D |
HelloWorld | ouai ... je comprend pas d'ou il sort ton quote
c'est koi "e ??? :??: |
Alan150382 | :-( error ligne 18 et 21 |
HelloWorld | arf ... pas assez rapide ...
t'as qu'a mixer les 2 progs ! :D |
Alan150382 | merci! je vais essayer |
HelloWorld | #include <stdio.h>
void main(void) { char ligne[100]; /* si ton gars entre + de 100 carateres ... */ int i,nb; printf("Ce source viens de Hardware.fr\n" ); /* indispensable */ scanf("%s",&ligne); for(i=0;i<99;i++) { switch(ligne[i]) { case 'a': case 'e': case 'i': case 'o': case 'u': nb++;break; case '*': printf("Le nombre de voyelles est %d.\n",nb); } } ca doit etre a peu pres ca ... |
Alan150382 | voila ce ke je doi faire mais j'y arrive pas!!! si kk1 peu me le faire je lui en serai voila ce ke j'ai fais mais il y a des errursje capte pas pkoi
#include<stdio.h> main() { char c; int v=0; printf ("Entrez une ligne qui se termine par*\n"); while((c=getchar( ))!='*') switch (c) { case 'A': case 'a':v++; /* Achaque fois que le compilateur va renconter ce caractères, il va ajouter 1 case 'E': à la valeur de v */ case 'e':v++; case 'I': case'i':v++; case 'O': case'o':v++; case 'U': case'u':v++; } printf ("Le nombre de voyelles dans la ligne est%d\n",v); return 0; } |
Alan150382 | voila ce ke je doi faire mais j'y arrive pas!!! si kk1 peu me le faire je lui en serai reconnaissant! surtout ke c noté! ;-)
il faut ecrir un prog ki lit une ligne entrée au clavier et compte le nombre de voyelles de cette ligne. Entrée: Une ligne de texte terminée par un asterixe Sorti: la phrase "Le nombre de voyelle dans la ligne est xxx" ou xxx est le nombre de voyelles dans la ligne entrée. Merci! |