-
مشکلی کوچک
سلام دوستان.
شما می دونید مشکل برنامه زیر چیه؟
[HTML]#include<stdio.h>
#include<string.h>
main()
{
char name[100][21],s[21];
int i=0,n,found=0;
printf("enter number of student:");
scanf("%d",&n);
do
{
printf("\nEnter name %d:",i+1);
gets(name[i]);
i++;
} while(i<n);
printf("\nEnter a name to search:");
scanf("%s",&s);
for(i=0;i<n;i++)
if(strcmp(name[i],s)==0)
{
found=1;
break;
}
if(found)
printf("Name found at position %d",i+1);
else
printf("Name not found.");
getch();
}[/HTML]
اما وقتی به این صورت می نویسم مشکل حل میشه!!!!
[HTML]#include<stdio.h>
#include<string.h>
main()
{
char name[100][21],s[21];
int i=0,n,found=0;
printf("enter number of student:");
scanf("%d",&n);
gets(name[i]);
do
{
printf("\nEnter name %d:",i+1);
gets(name[i]);
i++;
} while(i<n);
printf("\nEnter a name to search:");
scanf("%s",&s);
for(i=0;i<n;i++)
if(strcmp(name[i],s)==0)
{
found=1;
break;
}
if(found)
printf("Name found at position %d",i+1);
else
printf("Name not found.");
getch();
}[/HTML]
در محیط turbo c
-
تورو خدا کمککککککککککککککککک:19::19::19: :19:
-
پاسخ
سلام
1- براي تابع getch() ,
conio.h رو بايد تعريف كني.
2-به اين دليل برنامه اولي درست عمل نميكنه كه:
شما در حلقه do به شمارنده i ابتدا يك واحد اضافه كرديد بنابراين هنگام دريافت نام اولين نام رو كه در انديس 0 قرار دارد رو دريافت نميكنه و نام مربوط به انديس اول رو دريافت ميكنه.