❶ c語言:編寫一個查找數據的功能菜單
#include <stdio.h>
#include <stdlib.h>
typedef struct student
{
int num; //學號
int score; //成績
struct student *next; //節點的next
}stu; //學生信息節點
void main()
{
void creat(stu *);
void select(int,stu*);
void show(stu*); //函數聲明
stu *L;
int flag=1,sno;
char choice;
L=(stu*)malloc(sizeof(stu));
L->next=NULL; //初始化鏈表
creat(L); //創建學生信息鏈表
show(L); //顯示鏈表中所有學生的信息
while(flag) //控制自動循環查找
{
printf("do you want to sele\n");
getchar(); //吸收回車符
scanf("%c",&choice);
if(choice=='y'||choice=='Y')
{
printf("input the num\n");
scanf("%d",&sno);
select(sno,L);
} //用戶要查找(輸入'y;或者'Y'),查找學生信息
else
{
printf("select is over\n");
flag=0;
} //用戶不要求查找,則退出程序
}
}
void creat(stu *L)
{
stu *r;
int number,score,flag=1;
char choice;
printf("please input the infor of student\n");
while(flag) //控制循環輸入
{
printf("do you want to creat\n");
scanf("%c",&choice);
if(choice=='y'||choice=='Y')
{
printf("number:");
scanf("%d",&number);
printf("score:");
scanf("%d",&score); //輸入學生信息
r=(stu*)malloc(sizeof(stu));
r->num=number;
r->score=score;
r->next=L->next;
L->next=r;
getchar();
} //用頭插法將學生信息鏈入表中
else
{
printf("input over\n");
flag=0;
} //輸入結束
}
}
void select(int number,stu *L)
{
stu *p;
p=L->next;
while(p!=NULL&&p->num!=number)//鏈表未結束並且未找到信息
p=p->next; //遍歷鏈表查找對應學號
if(p->num==number)
{
printf("the infor of this stu is:\n");
printf("num:%d,score:%d\n",p->num,p->score);
} //找到對應學號,則輸出節點內容
else if(p==NULL)
printf("can not find\n");
}//查找學號 //未找到學號信息
void show(stu *L)
{
stu *p;
p=L->next;
while(p!=NULL) //鏈表未結束
{
printf("num:%d,score:%d",p->num,p->score);//輸出鏈表中內容
p=p->next; //指針後移
}
printf("\n");
}//顯示鏈表中內容
程序在VC6.0中調試通過!按照提示輸入信息即可
❷ 為什麼C語言中查詢功能輸出的結果是亂碼
你的輸出錯了。。。printf("姓名:%s
數學:%d
英語:%d
語文:%d
物理:%d
",(*stu).name,(*stu).math,(*stu).english,(*stu).chinese,(*stu).wuli);
把它改為printf("姓名:%s
數學:%d
英語:%d
語文:%d
物理:%d
",student[i].name,student[i].math,student[i].english,student[i].chinese,student[i].wuli);
這樣就OK了。。。。還有,我不知道你定義*stu還有
變數s
是幹嘛的耶。。。
或者可以這樣改
if(strcmp(name,student[i].name)==0){
stu
=
&student[i]
;
//
加這句
flag
=
1;
break;
}
❸ C語言中怎樣實現查找功能
可以用結構體 把一個人的信息定義成結構體的變數 輸入姓名後在結構體數組查找 匹配時輸出對應的所有信息
很好實現的
❹ c語言中根據姓名查詢成績
#include "conio.h"
struct student
{
char name [15];
int score;
};
int find (struct student s[]);void main()
{
int i=0;
struct student stu[5];
for(i=0;i<5;i++)
{
printf("輸入第%d個學生的姓名:",i+1);
scanf("%s",stu[i].name);
printf("輸入第%d個學生的成績:",i+1);
scanf("%d",&stu[i].score);
}
int nIndex=find(stu);
if(nIndex!=-1)
printf("找到該同學信息,該同學位於第%d個位置(數組下標)",nIndex);
getch();
}int find(struct student s[])
{
char name[15];
int i=0;
int nIndex=-1;
printf("輸入要查詢學生的姓名:");
scanf("%s",name);
for(i=0;i<5;i++)
{
if(strcmp(s[i].name,name)==0)
{
nIndex=i;
break;
}
}
return nIndex;
}
❺ c語言如何實現模糊查找
1、首先,打開網頁-【C語言在線編程工具】。
❻ c語言程序問題,查詢功能無法實現找了半天不知道錯在哪兒
1
a選擇2,3的時候,scanf輸入加上&
scanf("%d",&f);
2
a選擇1,4的時候,不能用==比較
if(strcmp(yuangong1[i].xingming,b)==0)
if(strcmp(yuangong1[i].xingbie,b)==0)
還需要#include<string.h>
❼ 如何用c語言編一個成績查詢系統
如果你是要做一個非常專業的商業軟體,這個其實不太適合用C語言來編寫。你可以考慮其他高級語言如java,c#,etc.
如果你僅僅是想在功能上實現成績查詢,而且數據量不是那種特別大,比如千萬,上億級別的,用C語言以二進制文件讀寫的方式完全可以輕松實現。
下面說說大概的思路:
1.你可以定義一個結構體來描述成績,結構體的變數包括比如姓名,學號,班級,語文成績,數學成績,etc。
2.所有學生的成績,就是一個個的結構體 把所有結構體保存到二進制文件中。
3.如果需要查詢成績,就先從二進制文件把所有的成績讀取出來,保存到數組或者鏈表中。然後在數組或者鏈表中進行查詢。
如果是要刪除某一個學生的記錄,就從數組或者鏈表中先找到該學生的記錄,然後刪掉該元素,再保存回二進制文件。
如果是要添加一個學生成績信息,就是在數組或者鏈表中添加一個元素,然後保存為二進制文件。
用C語言以二進制文件的方式模擬資料庫系統的操作,大體的思路就是這樣的。
如果你非要以資料庫的方式來存取數據,用C語言,也不是絕對不可以,那就比較繁瑣了,自行查找C語言訪問資料庫相關的知識。
❽ c語言,查找數組中是否存在某個數
從題目的敘述來看,這個函數的功能就是這一個包含有len個元素的num數組中查找是否存在值為key的元素。可以在找到後返回該元素的下標,否則返回-1。
這個函數的函數體可以這么寫:
int i;
for(i=0;i<len;i++)
if(num[i]==key)return i;
return -1;
然後在主函數中的查找語句可以這么寫:
if(searchNum(key,num,len)!=-1)
printf("找到!\n");
❾ c語言switch菜單的查找功能,為什麼有問題
find_list_choice函數裡面
1 scanf後面加上getchar(); 清理緩存。
2 p1是新申請的內存,沒有賦值,直接作為參數傳遞到find_list2
find_list2函數裡面
1 A1是新申請的內存,這一塊內存未賦值未使用未釋放的情況下被丟棄了,造成了內存泄露
2 直接把參數head給A1賦值,而find_list_choice給函數find_list2傳參時,這一塊內存並沒有賦值。所以對A1的使用結果都是不確定的。
3 for循環裡面如果A1->next的值是NULL,循環本該終止卻沒有終止。
❿ 用c語言編程,編寫一個函數實現查找功能,給定一個數N(char)類型,在已排序的
摘要 #include