الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ماالمشكلة في هذا الكود

مغلق
بدأه %%المدمر%% في 24 مايو 2005 · 4 رد · 529 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أنا أريد تصميم برنامج يقرأ من ملف يحتوي على أسماء وأرقام حساب و الميزانية ويقوم بتخزين القيم داخل ثلاث مصفوفات

ولكن حدثت مشكلة وقت التشغيل

مع انه لا يوجد أخطاء في الكود

أرجوا منكم الإطلاع على الكود وإخباري بالخطأ .

الملف مرفق

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<conio.h>
void main()
{
int i,j;
FILE *input;
char fullnames[10][30];
double account[10];
double balance[10];
input=fopen("account.txt","r");
while(i!=EOF)
{
for(j=0;j<30;++j)
{
fscanf(input,"%c",&fullnames[j]);
}
fscanf(input,"%lf",&account);
fscanf(input,"%lf",&balance);
++i;
}
}

ACCOUNT.TXT

#2

أعتقد المشكلة في الـ i يجب أن تصفره يعني i=0

#3

كانت عندك المشكله أنه أنت بتقرأ من ملف رقم من نوع int و تحاول تدخله في double وفي مشاكل أخرى شوف الكود :-

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<conio.h>
void main()
{
	int i=0;
	FILE *input;
	char fullnames[10][30];
	int account[10];
	double balance[10];
	input=fopen("account.txt","rb");
	while(!feof(input))
	{
  fscanf(input,"%s\n%d\n%lf",fullnames,&account,&balance);
  i++;
	}
	for(int g = 0;g<i;g++)
	{
  for(int z=0;z<30;z++)
  {
 	 char c;
 	 c= fullnames[g][z];
 	 if(c=='_')
 	 {
    fullnames[g][z] = ' ';
 	 }
  }
	}
 	 
	for(int x=0;x<i-1;x++)
	{
  
  printf("name:%s\naccount %d\nbalance %.2lf\n",fullnames[x],account[x],balance[x]);
	}
}

و أيضاً لازم الملف حقك البتقرأ منه مايكون فيه فراغ space بين الأسماء الملف شوف الملف المرفق

account.txt

#4

جزاك الله خير على هذا الكود

:wacko: عندي سؤال أخر :D

في نفس المثال

أود تصميم دالتين

الأولى أعطيها الأسم وتعيد رقم الحساب .

الثانيةأعطيها رقم الحساب وتعيد الميزانية .

account number (given the name)
balance (given the account number)
#5
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<conio.h>
int i=0; //make i global for interfunctional use

char fullnames[10][30]; 
int account[10];  //also these need to be global
double balance[10];

double balancevalue(int acnum);
int accoutnum(char *name);

void main()
{
	FILE *input;
	input=fopen("account.txt","rb");
	while(!feof(input))
	{
  fscanf(input,"%s\n%d\n%lf",fullnames,&account,&balance);
  i++;
	}
	for(int g = 0;g<i;g++)
	{
  for(int z=0;z<30;z++)
  {
 	 char c;
 	 c= fullnames[g][z];
 	 if(c=='_')
 	 {
    fullnames[g][z] = ' ';
 	 }
  }
  printf("name:%s\naccount %d\nbalance %.2lf\n",fullnames[g],account[g],balance[g]);
	}
	int numx;
	double b;
	char namex[1024];
	printf("enter the name to get account number and balance\n");
	gets(namex); //use gets not scanf scanf will break on ' ' spaces
	numx = accoutnum(namex); //giving accountnum() the name to get accouunt num
     	 // and storing the value in numx
	b=balancevalue(numx);//giving balancevalue the value from accountnum() to get balance
	printf("%d\nand balance = %.2lf\n",numx,b);
}


int accoutnum(char *name)
{
	for(int z =0; z<i;z++)
	{
  if(strcmp(fullnames[z],name) == 0) // warning case sensitive
  {
 	 return account[z];
  }
	}
}

double balancevalue(int acnum)
{
	for(int z =0; z<i;z++)
	{
  if(acnum == account[z])
  {
 	 return balance[z];
  }
	}
}

دالتين جاهزات لكن شوف أخي أنا يوم أساعدك بضرك حاول تحل هذه الأسئله بنفسك لو ماقدرت هاتها أنا أحلها لك مش مشكله بس لاتعمد على من بساعدك في الفاينل .

هذا الموضوع مغلق.

مواضيع مشابهة