PDA

View Full Version : مبتدی: مشکل با به کار بردن تابع



aali361
یک شنبه 21 اردیبهشت 1393, 18:01 عصر
سلام . من میخوام کاربر وقتی ورودی 1 رو میده به قسمت اینسرت اطلاعات بره . اما نمیدونم مشکل از کجاست ؟

#include <iostream>
using namespace std;
struct student{
int id;
char name[100];
int sc;
};
void insert()
{
int z,j=1;
student b[100];
cout << "how many student do you want to insert?" << endl;
cin >> z;
system("cls");
for (j = 1; j <= z; j++){
cout << "insert id" << endl;
cin >> b[j].id;
cout << "insert name" << endl;
cin >> b[j].name;
cout << "insert score" << endl;
cin >> b[j].sc;
system("cls");


}
int main()
{
int i;
cin >> i;
if (i == 1)
insert();
}

one hacker alone
یک شنبه 21 اردیبهشت 1393, 18:21 عصر
سلام
این برنامه باید خطا بده
یا int تابع main رو بردارید بزارید void
یا اخرش بنویسید return 0

rahnema1
یک شنبه 21 اردیبهشت 1393, 18:22 عصر
#include <iostream>
using namespace std;
#include <stdlib.h>
struct student{
int id;
char name[100];
int sc;
};
void insert()
{
int z,j=1;
student b[100];
cout << "how many student do you want to insert?" << endl;
cin >> z;
system("cls");
for (j = 1; j <= z; j++){
cout << "insert id" << endl;
cin >> b[j].id;
cout << "insert name" << endl;
cin >> b[j].name;
cout << "insert score" << endl;
cin >> b[j].sc;
system("cls");


}
}
int main()
{
int i;
cin >> i;
if (i == 1)
insert();
}

motherboard
یک شنبه 21 اردیبهشت 1393, 19:27 عصر
مشکل به خاطر اینه که اکولادی رو که بعد از حلقه for شروع کردی قبل از ()int main نبستی یا به زبان ساده تر یک اکولاد رو در قبل از شروع ()int main جا انداختی و قرار ندادی.

#include <iostream>
using namespace std;
struct student{
int id;
char name[100];
int sc;
};
void insert()
{
int z,j=1;
student b[100];
cout << "how many student do you want to insert?" << endl;
cin >> z;
system("cls");
for (j = 1; j <= z; j++){
cout << "insert id" << endl;
cin >> b[j].id;
cout << "insert name" << endl;
cin >> b[j].name;
cout << "insert score" << endl;
cin >> b[j].sc;
system("cls");


}}
int main()
{
int i;
cin >> i;
if (i == 1)
insert();
}

aali361
یک شنبه 21 اردیبهشت 1393, 20:04 عصر
خوب الان من کدم رو به این اینجا رسوندم . اما میخوام کاری کنم که وقتی که کاربر برای دفعات بعد میخواد اطلاعات جدیدی رو وارد کنه تو قسمتی که ایدی رو میزنه کامپایلر بیاد و اطلاعات قبل رو فرا خونی کنه اگه اون ایدی وجود داشت خطا بده و دوباره ایدی بخواد . چیزی که به ذهنم رسید رو نوشتم ام اما اگه مثلا ایدی جدید قبلا وجود داشته باشه نمیره تو خط اول فور که دوباره ایدی بگیره . فکر کنم باید از دستور goto استفاده کنم درسته ؟

#include <iostream>
#include <fstream>
#include <stdarg.h>
using namespace std;
struct student{
int id;
char name[100];
int sc;
};
void insert()
{
int z, j = 1,d=1000,v,h;
ofstream f("f:\\z.txt",ios_base::app);
ifstream fz("f:\\z.txt");
student b[100];
cout << "how many student do you want to insert?" << endl;
cin >> z;
system("cls");
for (j = 1; j <= z; j++)
{

cout << "insert id" << endl;
cin >> b[j].id;
for (v = 1; v <= d; v++){
fz >> b[v].id;
}
for (v = 1; v <= d; v++){
if (b[j].id == b[v].id)
h = 1;
}
if (h == 1){
cout << "this id has been inserted";
break;
}
cout << "insert name" << endl;
cin >> b[j].name;
cout << "insert score" << endl;
cin >> b[j].sc;
system("cls");
f << b[j].id << '\t' << b[j].name << '\t' << b[j].sc<<endl;


}
}
int main()
{
int i;
cout << "1)insert"<<endl;
cin >> i;
if (i == 1)
insert();
}

rahnema1
یک شنبه 21 اردیبهشت 1393, 21:29 عصر
#include <iostream>
#include <fstream>
#include <stdarg.h>
#include <stdlib.h>
using namespace std;
struct student{
int id;
char name[100];
int sc;
};
void insert()
{
int z, j = 1,d=1000,v,h;
ofstream f("f:\\z.txt",ios_base::app);
ifstream fz("f:\\z.txt");
student b[100];
cout << "how many student do you want to insert?" << endl;
cin >> z;
system("cls");
for (j = 1; j <= z; j++)
{
do{
h=0;
cout << "insert id" << endl;
cin >> b[j].id;
for (v = 0; v < j; v++){
if (b[j].id == b[v].id)
{
h = 1;
cout << "this id has been inserted\n";
break;
}
}
}while(h==1);
fz >> b[j].id;
cout << "insert name" << endl;
cin >> b[j].name;
cout << "insert score" << endl;
cin >> b[j].sc;
system("cls");
f << b[j].id << '\t' << b[j].name << '\t' << b[j].sc<<endl;
}
}
int main()
{
int i;
cout << "1)insert"<<endl;
cin >> i;
if (i == 1)
insert();
}