• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

اشكال اين برنامه ها چيه

amironline

Registered User
تاریخ عضویت
25 نوامبر 2003
نوشته‌ها
671
لایک‌ها
0
محل سکونت
Tabriz
من هر چي برنامه كه ميخوام با ماتريس و حافظه پويا بنويسم، درست كار نميكنه!
در ضمن آخر برنامه يه چنين پيغامي ميده
Null pointer assignement

اولي كه يه برنامه ساده هست

کد:
#include<stdio.h>
#include<stdlib.h>

void main()
{
	int n,k,i,j;

	printf("Enter two number for n,k:\n");
	scanf("%d %d",&n,&k);
	int **b;
	if(!(b=(int**)calloc(n,sizeof(int*))))
	{
		printf("\n allocation failure.");
		exit(0);
	}

	for(i=0;i<k;i++)
		if(!(b[i]=(int *)calloc(k,sizeof(int))))
		{
		printf("\n allocation failure.");
		exit(0);
		}

	for(i=0;i<n;i++)
		for(j=0;j<k;j++)
			b[i][j]=(i+1)*(j+1);

	for(i=0;i<n;i++)
		{
		for(j=0;j<k;j++)
			printf("%4d",b[i][j]);
		printf("\n");
		}
}


دومي هم براي محاسبه جايگشت n و k هست

کد:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define min(i,k) ((i<k)?i:k)

int bin(int ,int );
void main()
{
	int n,k,r;
	clrscr();
	printf("Enter two number for n:\n");
	scanf("%d",&n);
	printf("Enter two number for k:\n");
	scanf("%d",&k);
	printf("\n%d",bin(n,k));
	getch();
}

int bin(int n,int k)
{
	int **b;
	b=(int**)calloc(n,sizeof(int*));
	for(int i=0;i<k;i++)
		b[i]=(int *)calloc(k,sizeof(int));

	for(i=0;i<=n;i++)
		for(int j=0;j<=min(i,k);j++)
			if(j==0 || j==i)
				b[i][j]=1;
			else
				b[i][j]=b[i-1][j-1]+b[i-1][j];
	return b[n][k];
}
 

Mehdi.T

کاربر فعال برنامه نویسی
کاربر فعال
تاریخ عضویت
30 سپتامبر 2005
نوشته‌ها
506
لایک‌ها
3
محل سکونت
In Search of Sunrise
بدون توجه به الگوريتم به برنامه دومي :
هر دو برنامه در تخصيص حافظه درست هستند و عمل کردند بدون هيچ warning اي
 

saeedsmk

مدیر بازنشسته
تاریخ عضویت
6 سپتامبر 2003
نوشته‌ها
1,518
لایک‌ها
4
سلام
خوب هستید
امیر جان من این مشکل رو داشتم با تعویض کامپیلر مشکم حل شد

امیدوارم کمک کنه
 

amironline

Registered User
تاریخ عضویت
25 نوامبر 2003
نوشته‌ها
671
لایک‌ها
0
محل سکونت
Tabriz
بدون توجه به الگوريتم به برنامه دومي :
هر دو برنامه در تخصيص حافظه درست هستند و عمل کردند بدون هيچ warning اي
شما براي برنامه ها عددي بيشتر از 10 بدين اونوقته كهدرست كار نمي كنه
ضمنا الگوريتم چه اشكالي داره؟

سلام
خوب هستید
امیر جان من این مشکل رو داشتم با تعویض کامپیلر مشکم حل شد

امیدوارم کمک کنه

ممنون به لطف شما و دوستان خوبم
منظورتون اينه كه مثلا از سي تحت داس برم به سي تحت ويندوز
 

saeedsmk

مدیر بازنشسته
تاریخ عضویت
6 سپتامبر 2003
نوشته‌ها
1,518
لایک‌ها
4
سلام
یه راحلش اینه
یا اینکه توی محیط داس ( نه شل ویندوز ) برنامه تون رو اجرا کنید

امیدوارم کمک کنه
 

Mehdi.T

کاربر فعال برنامه نویسی
کاربر فعال
تاریخ عضویت
30 سپتامبر 2005
نوشته‌ها
506
لایک‌ها
3
محل سکونت
In Search of Sunrise
برنامه ها رو در محيط 16 بيتي و 32 بيتي با رقم بالاي 10 هم امتحان کردم کار کرد

الگوريتم رو نگاه نکردم
 
بالا