當前位置:首頁 » 編程語言 » c語言指針程序設計

c語言指針程序設計

發布時間: 2022-07-25 19:13:27

c語言用指針來完成的程序設計

#include<stdio.h>

struct student
{
char name[10];
float math;
float english;
float c;
};

void main(int arbc, char *argv[])
{
struct student stu[10], *ss = stu;
int i;
float sum[10] = {0}, aver[10] = {0};

for(i = 0; i < 10; i++)
{
printf("please input student name: \n");
scanf("%s", ss->name);
printf("please input student score of math: \n");
scanf("%f", &(ss->math));
printf("please input student score of english \n");
scanf("%f", &(ss->english));
printf("please input student score of c: \n");
scanf("%f", &(ss->c));
sum[i] += ss->math + ss->english + ss->c;
aver[i] = sum[i] / 3;
ss++;
}

for(i=0; i < 10; i++)
{
printf("student[%d]: %s\tsum of score: %f, average: %f\n", i, stu[i].name, sum[i], aver[i]);
}

}

❷ C語言指針編程

代碼文本:

#include "stdio.h"

#define N 10

#define F(x) ((x)>0 ? (x) : -(x))

int f(int *p){

int i,mini;

for(mini=0,i=1;i<N;i++)

if(F(p[mini]) > F(p[i]))

mini=i;

printf("%d ",p[mini]);

return mini;

}

int main(int argc,char *argv[]){

int a[N],i;

printf("Enter the %d integers... ",N);

for(i=0;i<N;scanf("%d",a+i++));

printf("The subscript is %d ",f(a));

return 0;

}

❸ 設計一個程序(C語言 指針)

//DEVC

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>

#defineN20

typedefstruct
{
charname[10];
intage;
intsex;
intgrade;
intnclass;
introom;
}INFO;

intmain()
{
char*name1[20]={"張","王","李","趙","錢","孫","蔣","秦","任","劉","周","鄭","吳","朱","許","何","呂","謝","方","葉"};
char*name2[20]={"子","欣","晨","紫","詩","夢","嘉","一","思","靜","可","佳","心","梓","俊","明","浩","博","文","天"};
char*name3[20]={"軒","勇","濤","軍","浩","豪","宇","俊","鳴","熙","文","國","佑","澤","然","傑","遠","平","秋","飛"};
srand((unsigned)time(0));
INFO*s;
s=(INFO*)malloc(sizeof(INFO)*N);
intn,i;
for(i=0;i<N;i++)//隨機初始N個同學姓名年齡,性別,班級等數據
{
n=rand()%20;
strcpy(s[i].name,name1[n]);
n=rand()%20;
strcat(s[i].name,name2[n]);
n=rand()%20;
strcat(s[i].name,name3[n]);
//以上為隨機生成姓名
s[i].age=rand()%3+16;

s[i].sex=rand()%2;

s[i].grade=rand()%3+1;

s[i].nclass=rand()%6+1;

s[i].room=100*(rand()%5+1)+rand()%20+1;
}
for(i=0;i<N;i++)
{
printf("%s%d歲",s[i].name,s[i].age);
if(s[i].sex==1)
{
printf("男");
}
else
{
printf("女");
}
printf("%d年級%d班%d室 ",s[i].grade,s[i].nclass,s[i].room);
}

charch[50];
intfind;
while(1)
{
find=0;
memset(ch,'',50);
printf(" 請輸入要查詢的姓名:");
fflush(stdin);
scanf("%s",ch);
for(i=0;i<N;i++)
{
if(strcmp(s[i].name,ch)==0)
{
find=1;
printf("%s%d歲",s[i].name,s[i].age);
if(s[i].sex==1)
{
printf("男");
}
else
{
printf("女");
}
printf("%d年級%d班%d室 ",s[i].grade,s[i].nclass,s[i].room);
break;
}
}
if(find==0)
{
printf(" 未找到!");
}
}
return0;
}

❹ 用c語言指針編程

有點麻煩,試試~~

最近考試有點忙,~
還未通過編譯,你自己看著改改,我會盡快再發給你的。~~
1、首先格式化輸入到棧,形式為:(字母開始,字母結束,空格分開不同單詞,空格不能連續)。
2、構建子棧,步驟:由母棧經格式化(取每個單詞後半部到子棧)。
3、排序。
4、輸出。

子棧元素首行格式為(堆棧元素 + 指向一數據結構的指針)

#include<ctype.h>
#include<stdio.h>
#define STACK_INT_SIZE 100 //存儲空間初始分配量
#define STACKINCREMENT 10 //存儲空間分配增量
#define OK 0
typedef struct C_Node{
char elem;
struct C_Node *next;
}C_Node;
typedef struct C_Stack{
char C_elem;
char *base;
char *top;
C_Node *C_next;
}C_Stack;
typedef struct{
char *base;
char *top;
int stacksize;
}SqStack;
Status InitStack (SqStack &S)
{ S.base=(ElemType*)malloc(STACK_INIT_SIZE*sizeof(ElemType));
if (!S.base) exit (OVERFLOW); //存儲分配失敗
S.top = S.base;
S.stacksize = STACK_INIT_SIZE;
return OK;
}
Status Push (SqStack &S, char e) {
if (S.top - S.base >= S.stacksize) {//棧滿,追加存儲空間
S.base=(ElemType *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof (ElemType));
if (!S.base) exit (OVERFLOW); //存儲分配失敗
S.top = S.base + S.stacksize;
S.stacksize += STACKINCREMENT;
}
*S.top++ = e;
return OK;
}

format_input()
{int Finish=0,flag;
char ch;
while(!Finish)
{flag=0;
scanf("%c",&ch);
if(' '==ch)
else if(isalpha(ch)){
if(0==flag)
else
}
else
}
}

Creat_C_Stack()
{指向 M_Stack 內元素的指針p(用於指向一個單詞的最後字母),q(指向p的前方第一個空格元素);
指向 C_Stack 首行元素的指針C_i(),及隨後元素的C_i_j(insert_place);
q=M_Stack.top;
p=M_Stack.top;

i=0;
q=top;
p=top-1;
num=0;
while(1)
for(;q.elem!=' ';)
q--;
i=(p-q-1)/2;
Insert_P=C_Stack[num];
Insert_P.elem=p.elem;
p--;
for(j=0;j<i;j--)
Insert_P.next=Insert_P.next;
Insert_P.elem=p.elem;
p--;
if(q==M_Stack) return;
}
Sort()
{C_Stack C_p=C_Stack[j],C_q=C_Stack[j+1],C_Temp;
for(C_p.next!=NULL&&C_q.next!=NULL)
{if(C_p.elem!=C_q.elem){
if(C_p.elem>C_q.elem){
C_temp=C_p;C_q=C_p;C_p=C_temp;
}
else
}
}
}
output()
{for(i=0;i<C_num;i++){
q=C_Stack[i];printf("%c",q.elem);
for(q.next!=NULL){
q=q.next;
printf("%c",q.elem);
}
}
}

#include<stdio.h>
void main()
{printf("只有空格和字母為有效字元,\n");
printf("其他字元將使輸入結束。\n");
format_input();
Creat_C_Stack();
Sort();
Output();
}

❺ C語言程序設計 指針的基本運算

這個p所指向的應該是數組,是先把p所指向的內存中的值賦值給X,在把p指向數組的下一個成員

❻ C語言程序設計 指針

變數前面加&代表取出這個變數的地址,&又叫取址符
指針前面加*代表取出,指針所指向的內存里的數據(值),*又叫取值符
p是指針,n是變數
計算機解析代碼是從右到左,所以
*&n = *(&n)
&n代表取出n在內存中的地址,取址
*&n,就是對&n在取值
*&n和n是等價的
所以下面的都是等價的
*p = *&n
*p = n
p = &n
就好比小明住在番茄花園
小明家的地址就是番茄花園
番茄花園里的值就是小明
n代表小明,
&n就是小明的家(番茄花園)
*&n就好比問小明的家裡住著誰,答案依然是小明
就好比我老婆的老公還是我。
再來理解一下*p
p是一個指針,p就是一個地址
p就是番茄花園
*p就是再問,番茄花園里住著誰
就好比有一個人叫小壯的,想找小明聚聚,但是不知道小明家的地址,他就找來和小明最要好的朋友小強,通過小強的他給了你一個字條,上面寫著小明的地址,這張字條就是指針,指針就是一個記錄地址東東,如果哪天小明搬家了,這張字條也就作廢了,所以指針指向的是一個內存地址,如果這個地址被釋放了,這個指針也就作廢了,因為指針就是一張帶著地址的紙。

❼ C語言程序設計指針問題

if(count<n){count++; *pa++=temp%10; total+=*pa;}
===>
if(count<n){count++; *pa=temp%10; total+=*pa++;}

❽ C語言程序設計——指針

  1. D

  2. D

  3. D

  4. ——錯題,"12345"是常字元串,禁止被更改,會出運行時錯誤

  5. D

  6. B

  7. B

  8. C

  9. D

  10. C

❾ C語言指針編程

#include<stdio.h>
intmax(inta,intb)
{
returna>b?a:b;
}
intmin(inta,intb)
{
returna<b?a:b;
}
intmain()
{
inta,b,i;
int(*p[2])(int,int)={max,min};
scanf("%d%d",&a,&b);
scanf("%d",&i);
if(i==1||i==2)
printf("%d ",p[i-1](a,b));
return0;
}

熱點內容
如何讓電腦上擁有移動式伺服器 發布:2025-01-27 13:04:46 瀏覽:67
漫威超級戰爭如何配置核心組合 發布:2025-01-27 13:03:19 瀏覽:954
c語言五子棋程序 發布:2025-01-27 12:58:43 瀏覽:157
win10流媒體伺服器怎麼搭建 發布:2025-01-27 12:58:04 瀏覽:384
組合公式的演算法 發布:2025-01-27 12:45:50 瀏覽:277
落櫻小屋哪裡下載安卓 發布:2025-01-27 12:35:13 瀏覽:71
微信伺服器IP跳轉 發布:2025-01-27 12:26:54 瀏覽:74
oracle自動備份腳本linux 發布:2025-01-27 12:21:40 瀏覽:937
pop伺服器密碼怎麼填 發布:2025-01-27 12:20:02 瀏覽:968
oraclesqlnumber 發布:2025-01-27 12:04:22 瀏覽:850