majidta
یک شنبه 20 اردیبهشت 1388, 16:24 عصر
خواهش میکنم بگید خطای زیر یعنی چی؟
این برنامشه و خطاهاشم زیرشه
پیشاپیش ممنون:خجالت:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct info{
long int stno;
char name [15];
char fname[15];
float ave;};
struct kz{
struct info f;
struct kz *link;};
typedef struct kz node;
void peyma (node *start);
void search(node *start,long int stnum);
void own_del(node **start,long int stnum);
void ago_del(node **start,long int stnum);
void first_del(node **start);
void next_del(node *start,long int stnum);
void last_del(node **start);
void first_add(node **start);
void last_add(node **start);
void ago_add(node **start,long int stnum);
void next_add(node **start,long int stnum);
void sort (node *p,int n);
void main (){
long int stnum;
scanf("%ld",&stnum);
int i,n,k;
node *p,*q,*start;
printf("enter n");
scanf("%d",&n);
start=p=(node*)malloc(sizeof(node));
printf("enter stno \n name \n fname \n ave");
scanf("%ld%s%s%f",&p->f.stno,p->f.name,p->f.fname,&p->f.ave);
for(i=1;i<n;i++){
q=(node*)malloc(sizeof(node));
printf("enter stno \n name \n fname \n ave");
scanf("%ld%s%s%f",&q->f.stno,q->f.name,q->f.fname,&q->f.ave);
p->link=q;
p=q;}
q->link='\0';
printf("for peyma enter k=1 \n");
printf("for search enter k=2 \n");
printf("for own_del enter k=3 \n");
printf("for ago_del enter k=4 \n");
printf("for first_del enter k=5 \n");
printf("for next_del enter k=6 \n");
printf("for last_del enter k=7 \n");
printf("for last_add enter k=8 \n");
printf("for ago_add enter k=9 \n");
printf("for next_add enter k=10 \n");
printf("for sort enter k=11 \n");
printf("for exit enter k=12 \n");
printf("k=");
scanf("%d",&k);
switch(k){
case 1:peyma(start);break;
case 2:search(start,stnum);break;
case 3:own_del(*start,stnum);break;
case 4:ago_del(*start,stnum);break;
case 5:first_del(start,stnum);break;
case 6:next_del(start,stnum);break;
case 7:last_del(*start);break;
case 8:last_add(*start);break;
case 9:ago_add(*start,stnum);break;
case 10:next_add(*start,stnum);break;
case 11:sort(p,n);break;
case 12:exit(0);break;}}
void peyma(node *start){
node *p;
p=start;
while(p){
printf("%ld,%s,%s,%f",p->f.stno,p->f.name,p->f.fname,p->f.ave);
p=p->link;}}
void search(node *start,long int stnum){
node *p;
p=start;
while(p){
if(p->f.stno!=stnum)p=p->link;
else break;
printf("%ld,%s,%s,%f",p->f.stno,p->f.name,p->f.fname,p->f.ave);}}
void own_del(node **start,long int stnum){
node *p,*q;
p=*start;
while(p){
if(p->f.stno!=stnum)p=p->link;
else break;
q=p;}
if(p==q){*start=p->link; return;}
while(p->link!=q)p=p->link;
p->link=q->link;
}
void ago_del(node **start,long int stnum){
node *p,*q;
p=*start;
if(p==q)return;
while(p){
if(p->f.stno!=stnum)p=p->link;
else break;
q=p;}
if(p->link=q){*start=q;return;}
while(p->link->link!=q)p=p->link;
p->link=q;}
void next_del(node *start,long int stnum){
node *p,*q;
p=start;
while(p){
if(p->f.stno!=stnum)p=p->link;
else break;
q=p;}
if(q->link!='\0')
q->link=q->link->link;}
void first_del(node **start){
if(*start!='\0')*start=(*start)->link;}
void last_del(node **start){
node *p;
p=*start;
if(*start!='\0'){if(p->link='\0'){*start='\0';return;}}
while(p->link->link)p=p->link;
p->link='\0';}
void first_add(node **start){
node *r;
r=(node*)malloc(sizeof(node));
scanf("%ld%s%s%f",&r->f.stno,r->f.name,r->f.fname,&r->f.ave);
r->link=*start;
*start=r;}
void last_add(node **start){
node *r,*q,*p;
r=(node*)malloc(sizeof(node));
scanf("%ld%s%s%f",&r->f.stno,r->f.name,r->f.fname,&r->f.ave);
p->link='\0';
if(*start='\0'){*start=p;return;}
q=*start;
while(q->link!='\0')q=q->link;
q->link=p;}
void ago_add(node **start,long int stnum){
node *p,*q,*r;
r=(node*)malloc(sizeof(node));
scanf("%ld%s%s%f",&r->f.stno,r->f.name,r->f.fname,&r->f.ave);
p=*start;
while(p){
if(p->f.stno!=stnum)p=p->link;
else break;
q=p;}
if(*start==q){r->link=q;*start=r;return;}
p->link=r;
r->link=q;}
void next_add(node **start,long int stnum){
node *r,*p,*q;
r=(node*)malloc(sizeof(node));
scanf("%ld%s%s%f",&r->f.stno,r->f.name,r->f.fname,&r->f.ave);
p=*start;
while(p){
if(p->f.stno!=stnum)p=p->link;
else break;
q=p;}
r->link=q->link;
q->link=r;}
void sort(node *p,int n){
int i;
node *start;
struct info temp;
for(i=0;i<n;i++){
start=p;
while(start->link!='\0'){
if(start->f.stno>start->link->f.stno)
temp=start->f;
start->f=start->link->f;
start->link->f=temp;}
start=start->link;}}
اینم خطاهش
--------------------Configuration: Cpp1 - Win32 Debug--------------------
Compiling...
Cpp1.cpp
J:\313\Cpp1.cpp(59) : error C2664: 'own_del' : cannot convert parameter 1 from 'struct kz' to 'struct kz ** '
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
J:\313\Cpp1.cpp(60) : error C2664: 'ago_del' : cannot convert parameter 1 from 'struct kz' to 'struct kz ** '
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
J:\313\Cpp1.cpp(61) : error C2660: 'first_del' : function does not take 2 parameters
J:\313\Cpp1.cpp(63) : error C2664: 'last_del' : cannot convert parameter 1 from 'struct kz' to 'struct kz ** '
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
J:\313\Cpp1.cpp(64) : error C2664: 'last_add' : cannot convert parameter 1 from 'struct kz' to 'struct kz ** '
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
J:\313\Cpp1.cpp(65) : error C2664: 'ago_add' : cannot convert parameter 1 from 'struct kz' to 'struct kz ** '
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
J:\313\Cpp1.cpp(66) : error C2664: 'next_add' : cannot convert parameter 1 from 'struct kz' to 'struct kz ** '
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
Error executing cl.exe.
Cpp1.obj - 7 error(s), 0 warning(s)
این برنامشه و خطاهاشم زیرشه
پیشاپیش ممنون:خجالت:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct info{
long int stno;
char name [15];
char fname[15];
float ave;};
struct kz{
struct info f;
struct kz *link;};
typedef struct kz node;
void peyma (node *start);
void search(node *start,long int stnum);
void own_del(node **start,long int stnum);
void ago_del(node **start,long int stnum);
void first_del(node **start);
void next_del(node *start,long int stnum);
void last_del(node **start);
void first_add(node **start);
void last_add(node **start);
void ago_add(node **start,long int stnum);
void next_add(node **start,long int stnum);
void sort (node *p,int n);
void main (){
long int stnum;
scanf("%ld",&stnum);
int i,n,k;
node *p,*q,*start;
printf("enter n");
scanf("%d",&n);
start=p=(node*)malloc(sizeof(node));
printf("enter stno \n name \n fname \n ave");
scanf("%ld%s%s%f",&p->f.stno,p->f.name,p->f.fname,&p->f.ave);
for(i=1;i<n;i++){
q=(node*)malloc(sizeof(node));
printf("enter stno \n name \n fname \n ave");
scanf("%ld%s%s%f",&q->f.stno,q->f.name,q->f.fname,&q->f.ave);
p->link=q;
p=q;}
q->link='\0';
printf("for peyma enter k=1 \n");
printf("for search enter k=2 \n");
printf("for own_del enter k=3 \n");
printf("for ago_del enter k=4 \n");
printf("for first_del enter k=5 \n");
printf("for next_del enter k=6 \n");
printf("for last_del enter k=7 \n");
printf("for last_add enter k=8 \n");
printf("for ago_add enter k=9 \n");
printf("for next_add enter k=10 \n");
printf("for sort enter k=11 \n");
printf("for exit enter k=12 \n");
printf("k=");
scanf("%d",&k);
switch(k){
case 1:peyma(start);break;
case 2:search(start,stnum);break;
case 3:own_del(*start,stnum);break;
case 4:ago_del(*start,stnum);break;
case 5:first_del(start,stnum);break;
case 6:next_del(start,stnum);break;
case 7:last_del(*start);break;
case 8:last_add(*start);break;
case 9:ago_add(*start,stnum);break;
case 10:next_add(*start,stnum);break;
case 11:sort(p,n);break;
case 12:exit(0);break;}}
void peyma(node *start){
node *p;
p=start;
while(p){
printf("%ld,%s,%s,%f",p->f.stno,p->f.name,p->f.fname,p->f.ave);
p=p->link;}}
void search(node *start,long int stnum){
node *p;
p=start;
while(p){
if(p->f.stno!=stnum)p=p->link;
else break;
printf("%ld,%s,%s,%f",p->f.stno,p->f.name,p->f.fname,p->f.ave);}}
void own_del(node **start,long int stnum){
node *p,*q;
p=*start;
while(p){
if(p->f.stno!=stnum)p=p->link;
else break;
q=p;}
if(p==q){*start=p->link; return;}
while(p->link!=q)p=p->link;
p->link=q->link;
}
void ago_del(node **start,long int stnum){
node *p,*q;
p=*start;
if(p==q)return;
while(p){
if(p->f.stno!=stnum)p=p->link;
else break;
q=p;}
if(p->link=q){*start=q;return;}
while(p->link->link!=q)p=p->link;
p->link=q;}
void next_del(node *start,long int stnum){
node *p,*q;
p=start;
while(p){
if(p->f.stno!=stnum)p=p->link;
else break;
q=p;}
if(q->link!='\0')
q->link=q->link->link;}
void first_del(node **start){
if(*start!='\0')*start=(*start)->link;}
void last_del(node **start){
node *p;
p=*start;
if(*start!='\0'){if(p->link='\0'){*start='\0';return;}}
while(p->link->link)p=p->link;
p->link='\0';}
void first_add(node **start){
node *r;
r=(node*)malloc(sizeof(node));
scanf("%ld%s%s%f",&r->f.stno,r->f.name,r->f.fname,&r->f.ave);
r->link=*start;
*start=r;}
void last_add(node **start){
node *r,*q,*p;
r=(node*)malloc(sizeof(node));
scanf("%ld%s%s%f",&r->f.stno,r->f.name,r->f.fname,&r->f.ave);
p->link='\0';
if(*start='\0'){*start=p;return;}
q=*start;
while(q->link!='\0')q=q->link;
q->link=p;}
void ago_add(node **start,long int stnum){
node *p,*q,*r;
r=(node*)malloc(sizeof(node));
scanf("%ld%s%s%f",&r->f.stno,r->f.name,r->f.fname,&r->f.ave);
p=*start;
while(p){
if(p->f.stno!=stnum)p=p->link;
else break;
q=p;}
if(*start==q){r->link=q;*start=r;return;}
p->link=r;
r->link=q;}
void next_add(node **start,long int stnum){
node *r,*p,*q;
r=(node*)malloc(sizeof(node));
scanf("%ld%s%s%f",&r->f.stno,r->f.name,r->f.fname,&r->f.ave);
p=*start;
while(p){
if(p->f.stno!=stnum)p=p->link;
else break;
q=p;}
r->link=q->link;
q->link=r;}
void sort(node *p,int n){
int i;
node *start;
struct info temp;
for(i=0;i<n;i++){
start=p;
while(start->link!='\0'){
if(start->f.stno>start->link->f.stno)
temp=start->f;
start->f=start->link->f;
start->link->f=temp;}
start=start->link;}}
اینم خطاهش
--------------------Configuration: Cpp1 - Win32 Debug--------------------
Compiling...
Cpp1.cpp
J:\313\Cpp1.cpp(59) : error C2664: 'own_del' : cannot convert parameter 1 from 'struct kz' to 'struct kz ** '
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
J:\313\Cpp1.cpp(60) : error C2664: 'ago_del' : cannot convert parameter 1 from 'struct kz' to 'struct kz ** '
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
J:\313\Cpp1.cpp(61) : error C2660: 'first_del' : function does not take 2 parameters
J:\313\Cpp1.cpp(63) : error C2664: 'last_del' : cannot convert parameter 1 from 'struct kz' to 'struct kz ** '
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
J:\313\Cpp1.cpp(64) : error C2664: 'last_add' : cannot convert parameter 1 from 'struct kz' to 'struct kz ** '
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
J:\313\Cpp1.cpp(65) : error C2664: 'ago_add' : cannot convert parameter 1 from 'struct kz' to 'struct kz ** '
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
J:\313\Cpp1.cpp(66) : error C2664: 'next_add' : cannot convert parameter 1 from 'struct kz' to 'struct kz ** '
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
Error executing cl.exe.
Cpp1.obj - 7 error(s), 0 warning(s)