#include stdio.h
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設計制作、網(wǎng)站設計與策劃設計,北湖網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設十余年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:北湖等地區(qū)。北湖做網(wǎng)站價格咨詢:13518219792
#include string.h
#include malloc.h
void niXuArr(char arr[]);
char * niXuPoint(char *p);
int main(void)
{
char arr[] = {"abcdefghigk"}, *p = "you are the first";
printf("逆序前:%s\n逆序后:", arr);
niXuArr(arr);
printf("%s\n", arr);
printf("逆序前:%s\n逆序后:", p);
p = niXuPoint(p);
printf("%s\n", p);
return 0;
}
void niXuArr(char arr[])
{
int i = 0;
char temp = 0;
for(i = 0; i strlen(arr) / 2; i++)
{
temp = arr[i];
arr[i] = arr[strlen(arr) - 1 - i];
arr[strlen(arr) - 1 - i] = temp;
}
}
char * niXuPoint(char *p)
{
char *pHead = NULL, *pTail = NULL, temp = 0;
int i = 0;
pHead = (char*)malloc(strlen(p));
pTail = p + strlen(p) - 1;
p = pHead;
for(i = 0; i strlen(p); i++)
{
*pHead++ = *pTail--;
}
*pHead = '\0';
return p;
}
這個肯定是先學數(shù)組了,畢竟是最基本的數(shù)據(jù)格式,但是要學C語言肯定都會學到的。
給你看一下我的代碼
#includestdio.h
void main(){
int a[10],b[10],i,j,temp;
for(i=0;i10;i++){
printf("請輸入第%d個數(shù):",(i+1));
scanf("%d",a[i]);
//保存數(shù)組,因為輸入完數(shù)組要冒泡排序,排序后的元素順序可能和原數(shù)組不一樣
b[i]=a[i];
}
//冒泡排序,求最大值
for(i=0;i9;i++){
for(j=0;j9-i;j++){
if(a[j]a[j+1]){ //這里控制的升序還是降序,我這是降序
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
//查找最大值在原數(shù)組的位置
for(i=0;i10;i++){
if(b[i]==a[0]){ //降序的話最大值是a[0],升序的話最大值是a[9]
break; //一旦找到最大值,馬上跳出循環(huán)
}
}
printf("最大值是%d,它在原數(shù)組中是第%d個元素!\n",a[0],(i+1));
}
你的程序:
main()
{
int b[3];
b=pop();
}
int * pop()
{
int a[3],i;//定義的局部變量a[3]在調(diào)用完之后自動釋放其空間
for(i=0;i3;i++)
a[i]=i;
return a;//返回的是指向數(shù)組a[3]的地址而不是數(shù)組a[3]本身
}
注:既然上面說到調(diào)用的方法返回的是指向數(shù)組a[3]的地址,所以主函數(shù)中b接收的應該是指向數(shù)組a[3]的地址,而數(shù)組a[3]在方法調(diào)用完后又被釋放了,所以b接收不到數(shù)組a[3],故出錯。
正確的程序:
#includestdio.h
main()
{
int b[3];
pop(b,3);
}
void pop(int a[],int n)//該方法傳入兩個參數(shù),第一個是傳入指向數(shù)組的地址,第二個參數(shù)是傳入數(shù)組的長度,不需寫返回語句return,只需通過指向數(shù)組的地址的傳入就可以直接將數(shù)組b[]的值改變
{
int i;
for(i=0;in;i++)
a[i]=i;
}
#include "stdio.h"
#include "string.h"
#include "windows.h"
#include "conio.h"
void input();
void menu();
struct student
{
int code;
char name[20];
char sex;
int age;
int chinese;
int english;
int computer;
int math;
int total;
int average;
}stud[100];
struct student temp;
void input()
{
int num,i;
printf("請問您要輸入幾個學生的信息?\n");
scanf("%d",num);
for(i=0;inum;i++)
{
printf("請輸入第%d個學生的學號:\n",i+1);
scanf("%d",stud[i].code);
printf("請輸入第%d個學生的姓名:\n",i+1);
scanf("%s",stud[i].name);
fflush(stdin);
printf("請輸入第%d個學生的性別(F為女,M為男):\n",i+1);
scanf("%c",stud[i].sex);
fflush(stdin);
printf("請輸入第%d個學生的年齡:\n",i+1);
scanf("%d",stud[i].age);
printf("請輸入第%d個學生的語文成績:\n",i+1);
scanf("%d",stud[i].chinese);
printf("請輸入第%d個學生的英語成績:\n",i+1);
scanf("%d",stud[i].english);
printf("請輸入第%d個學生的計算機成績:\n",i+1);
scanf("%d",stud[i].computer);
printf("請輸入第%d個學生的數(shù)學成績:\n",i+1);
scanf("%d",stud[i].math);
stud[i].total = stud[i].chinese+stud[i].english+stud[i].computer+stud[i].math;
stud[i].average = stud[i].total/4;
}
printf("您已經(jīng)輸入了%d個學生的信息",num);
printf("\n請按任意鍵返回主菜單!");
fflush(stdin);
getch();
system("cls");
menu();
}
void find()
{
int choice,i,code;
char name[20];
printf("請問您需要按照哪一個方式來查找學員:\n");
printf("查找方式:1.按學號查找。2.按姓名查找。\n");
scanf("%d",choice);
if(choice==1)
{
printf("請輸入您要查找的同學的學號:\n");
scanf("%d",code);
for(i=0;i100;i++)
{
if(code == stud[i].code)
{
printf("\n第%d個學生的學號是:%d\n",i+1,stud[i].code);
printf("第%d個學生的姓名是:%s\n",i+1,stud[i].name);
printf("第%d個學生的性別是:%c\n",i+1,stud[i].sex);
printf("第%d個學生的年齡是:%d\n",i+1,stud[i].age);
printf("第%d個學生的語文成績是:%d\n",i+1,stud[i].chinese);
printf("第%d個學生的英語成績是:%d\n",i+1,stud[i].english);
printf("第%d個學生的計算機成績是:%d\n",i+1,stud[i].computer);
printf("第%d個學生的數(shù)學成績是:%d\n",i+1,stud[i].math);
printf("第%d個學生的總成績是:%d\n",i+1,stud[i].total);
printf("第%d個學生的平均分是:%d\n",i+1,stud[i].average);
printf("══════════════════════════════\n");
}
}
}
else if(choice==2)
{
printf("請輸入您要查找的學生的姓名");
fflush(stdin);
gets(name);
for(i=0;i100;i++)
{
if(strcmp(name,stud[i].name)==0)
{
printf("\n第%d個學生的學號是:%d\n",i+1,stud[i].code);
printf("第%d個學生的姓名是:%s\n",i+1,stud[i].name);
printf("第%d個學生的性別是:%c\n",i+1,stud[i].sex);
printf("第%d個學生的年齡是:%d\n",i+1,stud[i].age);
printf("第%d個學生的語文成績是:%d\n",i+1,stud[i].chinese);
printf("第%d個學生的英語成績是:%d\n",i+1,stud[i].english);
printf("第%d個學生的計算機成績是:%d\n",i+1,stud[i].computer);
printf("第%d個學生的數(shù)學成績是:%d\n",i+1,stud[i].math);
printf("第%d個學生的總成績是:%d\n",i+1,stud[i].total);
printf("第%d個學生的平均分是:%d\n",i+1,stud[i].average);
printf("══════════════════════════════\n");
}
}
}
else
{
printf("請輸入1或者2,只能按照姓名或者學號來查找學生信息");
fflush(stdin);
getch();
system("cls");
find();
}
printf("學生相關信息打印完畢");
printf("\n請按任意鍵返回主菜單!");
fflush(stdin);
getch();
system("cls");
menu();
}
void insert()
{
int i,j=0;
system("cls");
printf("請輸入要插入學生的信息:\n");
printf("請輸入學生的學號:\n");
scanf("%d",temp.code);
printf("請輸入學生的姓名:\n");
scanf("%s",temp.name);
fflush(stdin);
printf("請輸入學生的性別(F為女,M為男):\n");
scanf("%c",temp.sex);
fflush(stdin);
printf("請輸入學生的年齡:\n");
scanf("%d",temp.age);
printf("請輸入學生的語文成績:\n");
scanf("%d",temp.chinese);
printf("請輸入學生的英語成績:\n");
scanf("%d",temp.english);
printf("請輸入學生的計算機成績:\n");
scanf("%d",temp.computer);
printf("請輸入學生的數(shù)學成績:\n");
scanf("%d",temp.math);
temp.total = temp.chinese+temp.english+temp.computer+temp.math;
temp.average = temp.total/4;
for(i=0;i100;i++)
{
if(temp.codestud[i].code)
{
for(j=99;ji;j--)
{
stud[j]=stud[j-1];
}
}
stud[j]=temp;
break;
}
printf("你成功已插入了學生的信息!");
printf("\n請按任意鍵返回主菜單!");
fflush(stdin);
getch();
system("cls");
menu();
}
void del()
{
int code,i,j;
printf("請輸入您要刪除的學員的學號:\n");
scanf("%d",code);
for(i=0;i100;i++)
{
if(code==stud[i].code)
{
for(j=i;j100;j++)
{
stud[j]=stud[j+1];
}
}
if(strlen(stud[i].name)0)
{
printf("\n第%d個學生的學號是:%d\n",i+1,stud[i].code);
printf("第%d個學生的姓名是:%s\n",i+1,stud[i].name);
printf("第%d個學生的性別是:%c\n",i+1,stud[i].sex);
printf("第%d個學生的年齡是:%d\n",i+1,stud[i].age);
printf("第%d個學生的語文成績是:%d\n",i+1,stud[i].chinese);
printf("第%d個學生的英語成績是:%d\n",i+1,stud[i].english);
printf("第%d個學生的計算機成績是:%d\n",i+1,stud[i].computer);
printf("第%d個學生的數(shù)學成績是:%d\n",i+1,stud[i].math);
printf("第%d個學生的總成績是:%d\n",i+1,stud[i].total);
printf("第%d個學生的平均分是:%d\n",i+1,stud[i].average);
printf("══════════════════════════════\n");
}
}
printf("學生相關信息打印完畢");
printf("\n請按任意鍵返回主菜單!");
fflush(stdin);
getch();
system("cls");
menu();
}
void output()
{
int i;
for(i=0;i100;i++)
{
if(strlen(stud[i].name)0)
{
printf("\n第%d個學生的學號是:%d\n",i+1,stud[i].code);
printf("第%d個學生的姓名是:%s\n",i+1,stud[i].name);
printf("第%d個學生的性別是:%c\n",i+1,stud[i].sex);
printf("第%d個學生的年齡是:%d\n",i+1,stud[i].age);
printf("第%d個學生的語文成績是:%d\n",i+1,stud[i].chinese);
printf("第%d個學生的英語成績是:%d\n",i+1,stud[i].english);
printf("第%d個學生的計算機成績是:%d\n",i+1,stud[i].computer);
printf("第%d個學生的數(shù)學成績是:%d\n",i+1,stud[i].math);
printf("第%d個學生的總成績是:%d\n",i+1,stud[i].total);
printf("第%d個學生的平均分是:%d\n",i+1,stud[i].average);
printf("══════════════════════════════\n");
}
}
printf("學生相關信息打印完畢");
printf("\n請按任意鍵返回主菜單!");
fflush(stdin);
getch();
system("cls");
menu();
}
void sort()
{
int i,j;
for(i=0;i100;i++)
{
for(j=i+1;j100;j++)
{
if(strlen(stud[i].name)0 strlen(stud[j].name)0)
{
if(stud[i].averagestud[j].average)
{
temp=stud[i];
stud[i]=stud[j];
stud[j]=temp;
}
}
}
}
printf("學生信息按照平均分降序排序完畢\n");
output();
}
void error()
{
printf("輸入錯誤,請輸入(1-7):\n");
printf("按任意鍵結(jié)束。。。。。\n");
fflush(stdin);
getch();
system("cls");
menu();
}
void menu()
{
int choice;
system("cls");
printf("\t\t學生信息管理系統(tǒng)\n");
printf("*************************************************\n");
printf("\t\t【1】輸入數(shù)據(jù)\n");
printf("\t\t【2】查找數(shù)據(jù)\n");
printf("\t\t【3】插入數(shù)據(jù)\n");
printf("\t\t【4】刪除數(shù)據(jù)\n");
printf("\t\t【5】輸出數(shù)據(jù)\n");
printf("\t\t【6】排序數(shù)據(jù)\n");
printf("\t\t【7】退出\n");
printf("*************************************************\n");
printf("請輸入您的選擇(1-7)\n");
scanf("%d",choice);
switch(choice)
{
case 1:input();break;
case 2:find();break;
case 3:insert();break;
case 4:del();break;
case 5:output();break;
case 6:sort();break;
case 7:exit(0);break;
default:error();break;
}
}
void main()
{
menu();
}
僅供參考
#include?stdio.h
#define?S?10
#define?C?5
int?scores[S][C];
void?input(void)
{
int?i,?j;
for(i?=?0;?i??S;?i?++)
{
printf("input?%d?scores?of?student?%d?\n",?C,?i+1);
for(j?=?0;?j??C;?j?++)
scanf("%d",?scores[i][j]);
}
}
void?calc_ave(void)
{
int?i,?j;
float?a;
for(i?=?0;?i??S;?i?++)
{
for(a?=?0,?j?=?0;?j??C;?j?++)
a?+=?scores[i][j];
a/=C;
printf("average?score?of?student?%d?is?%.2f\n",?i+1,?a);
}
}
void?output(void)
{
int?i,?j;
for(i?=?0;?i??S;?i?++)
{
printf("%03d?",?i+1);
for(j?=?0;?j??C;?j?++)
printf("%3d?",?scores[i][j]);
printf("\n");
}
}
void?find_max(void)
{
int?i,?j,?mi,?mj;
for(mi=?mj?=?i?=?0;?i??S;?i?++)
for(j?=?0;?j??C;?j?++)
if(scores[i][j]??scores[mi][mj])?mi?=?i,?mj?=?j;
printf("the?max?score?is?class?%d?of?student?%d\n",?mj?+?1,?mi?+?1);
}
void?find_more_than_90(void)
{
int?i,?j;
for(i?=?0;?i??S;?i?++)
{
for(j?=?0;?j??C;?j?++)
if(scores[i][j]?=90)?break;
if(j?==?C)?printf("student?%d?has?score?more?than?90?on?every?class\n",?i?+?1);
}
}
int?main()
{
input();
calc_ave();
output();
find_max();
find_more_than_90();
return?0;
}