Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    760

    Richiesta per programmini c

    Buongiorno a tutti,sono un nuovo iscritto e vorrei chiedere un consiglio per quanto riguarda array e stringhe in c.
    Ho costruito questo programmino con array e sembra funzionare,ma uno analogo con le stringhe no,dove sbaglio?
    ---ARRAY---
    #include<stdio.h>
    #define N 5
    main(){
    int a[N];
    int i=0;
    printf("\n INSERIMENTO DATI ARRAY ");
    for(i=0;i<N;i++){
    printf("\n Inserisci elemento array %d ",i);
    scanf("%d",&a[i]);}
    printf("\n INSERIMENTO PARAMETRI ");
    int k=0;
    printf("\n Inserisci minimo ");
    scanf("%d",&k);
    printf("\n DATI ARRAY CHE SODDISFANO RICERCA");
    int somma=0;
    for(i=0;i<N;i++){
    if (a[i]==k)
    somma=somma+1;}

    if( somma == 0 ){
    printf("\n Il numero %d non e' presente nell' array\n",k) ;}
    else{
    if( somma==1 ){
    printf("\n Il numero %d ricorre %d volta\n",k,somma);}
    else{
    printf("\n Il numero %d ricorre %d volte\n",k,somma);}}}
    ---STRINGA---
    #include<stdio.h>
    #define N 20
    main(){
    char str[N];
    printf("Inserisci scringa\n");
    scanf("%s",&str);
    printf("\n La stringa inserita e' %s\n",str);
    int i=0;
    for(i=0;str[i]!='\0';i++);
    printf("\n La stringa inserita e' lunga %d\n",i);
    char ric[]='c';
    int somma=0;
    for(i=0;str[i] != '\0' ;i++)
    if (str[i]=='c');

    if(str[i]=='\0') printf("\n la Lettera %s e' contenuta nella stringa\n",ric);
    else printf("\n NO\n");
    }

  2. #2
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Ti consiglirei di postare la prossima volta il tuo codice utilizzando i tag CODE.
    Spiegati meglio quando dici che non funziona, riesci almeno a compilarlo?

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    760
    Si,lo compilo,ma non esegue quello che dovrebbe,o meglio,non da un ricoltato corretto

  4. #4
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Ti faccio presente qualche "errore" notato a colpo d'occhio...

    codice:
    #include<stdio.h>
    #define N 20
    
    int main(){
    	char str[N];
    	
    	printf("Inserisci scringa\n");
    	scanf("%s",&str);
    	printf("\n La stringa inserita e' %s\n",str);
    	
    	int i=0;
    	for(i=0;str[i]!='\0';i++);
    		printf("\n La stringa inserita e' lunga %d\n",i);
    	
    	char ric[]='c';     //Dichiarazione non giusta
    	int somma=0;    //Non la usi mai questa variabile
    	
    	for(i=0;str[i] != '\0' ;i++)
    		if (str[i]=='c');
    
    	if(str[i]=='\0') 
    		printf("\n la Lettera %s e' contenuta nella stringa\n",ric);
    	else 
    		printf("\n NO\n");
    }
    Vedendo questi errori non capisco come possa compilarti questo codice. Un altra cosa che non capisco, e chiedo conferma dagli esperti è per quanto riguarda la dichiarazione delle variabili, se non ricordo male nel c le variabili devono essere dichiarate all'inizio del main, no?

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    760
    l' int nel main deve essere rimasto durante copia e incolla,nel sorgente non c'è.Come faccio però a risolvere gli altri due?
    Grazie e Auguri a tutti

  6. #6
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Come faccio però a risolvere gli altri due?
    Se consideriamo che quelle variabili non le usi mai è sufficente toglierle. Per quanto riguarda la prima variabile(char ric) l'errore è che lo dichiari come un array di tipo char senza specificare quanto deve essere lungo. Infatti tu scrivi:
    codice:
    char ric[];
    quando dovrebbe essere in questa forma:
    codice:
    char ric[...un valore intero...]

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    760
    Io ti ringrazio Pacio per il consiglio,ma se non ti dispiace posta il codice corretto ,magari copiando il mio e aggiustando quello che non ti sembra giusto , così non ti devo più disturbare e magari vedo dove sbaglio.....
    Grazie in anticipo

  8. #8
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Se non sbaglio tu vuoi un programma che stampi la lunghezza di una parola inserita e se la lettera c è compresa nella parola...vero?
    Te lo chiedo perchè trovo un po' confuso il tuo codice e faccio molto prima a scriverti un programma che svolge questo che correggere il tuo. Oltretutto potrai consultarlo come esempio per capire.

  9. #9
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Questo dovrebbe andare anche se non l'ho provato:
    codice:
    #include <stdio.h>
    #include <string.h>
    
    int const N = 20;
    
    int main(){
    	char str[N];
    	int i;
    	int es=0;
    	
    	
    	printf("Inserisci una parola(max 20 lettere): ");
    	scanf("%s", &str);
    	printf("La parola inserita e': %s.\n", str);
    	
    	for(i=0; str[i]!='\0'; i++);
    	printf("La parola inserita e' lunga: %d caratteri.\n", i);
    	
    	//controllo se la parola inserita constiene il carattere c
    	for(i=0; str[i]!='\0'; i++)
    	{	
    		if(str[i]=='c')
    			es=1;
    	}
    	if(es==0)
    		printf("La parola inserita non contiene il carattere c.\n");
    	else
    		printf("La parola inserita contiene il carattere c.\n");	
    	
    	system("pause");
    	return 0;
    }

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    760
    si,vorrei scrivere un programma che data una stringa dica se una lettera (magari inserita dall ' utente) è presente nella stringa iniziale,e al limite conti quante volte è contenuta.....
    Grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.