① c語言如何輸出指針所指向的值
需要准備的材料分別有:電腦、C語言編譯器。
1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。
② C語言菜鳥:如何用指針生成迴文數組
所謂迴文數組,就是從高到底和從低到高遍歷,得到的是相同序列。該數組具有對稱性。
如果一個數組不是迴文數組,可以把對稱位置上值不相等的元素修改為相等,來生成迴文數組。
用指針可以按照如下思路:
1 定義兩個指針head和end,head指向數組頭,end指向數組尾。
2 比較兩個指針指向的值,如果不相等,則令其相等。
3 移動指針,head向後,end向前,即兩頭向中間湊。
4 重復執行2-3步,直到兩個指針相等或者end在head前(end <= head),結束循環。
5 得到的數組即為迴文數組。
參考代碼如下:
#include<stdio.h>
intmain()
{
inta[5]={1,2,4,3,1};//原始數組,不是迴文數組。
inti;
int*head,*end;//定義兩個指針。
head=a;//head指向頭。
end=&a[4];//end指向尾。
while(head>end)//循環條件設置為head>end,即當end<=head時退出循環。
{
if(*head!=*end)*end=*head;//如果不等,則使其相等。
}
for(i=0;i<5;i++)//輸出結果
printf("%d",a[i]);
return0;
}
執行後的結果為:
1 2 4 2 1
已經是迴文數組了。
③ C語言:生成20個學號姓名和5門成績的結構體數組,不動其數據,用指針數組按平均成績由高至低排序,咋寫
(感覺略有難度) 題目沒有要求計算和輸出平均值,所以排序可以不求平均值而按五門總分進行,效果與求出平均分是一樣的——
代碼文本:
#include "stdio.h"
#include <stdlib.h>
#include <string.h>
#include "time.h"
#define N 20
struct stu{
int s[5];
char SN[9],NAME[6];
};
int main(int argc,char *argv[]){
int i,j,k;
struct stu A[N],*p[N],*q;
srand((unsigned)time(NULL));
for(i=0;i<N;i++){//隨機生成學生信息
do{//隨機生成8位學號且不重復
itoa(10000+rand()%10000,A[i].SN,10);
strcpy(A[i].SN,A[i].SN+1);
itoa(1000+rand()%1000,A[i].SN+4,10);
for(j=0;j<i;j++)
if(strcmp(A[i].SN,A[j].SN)==0)
break;
}while(j<i);
A[i].NAME[0]='S',A[i].NAME[1]='T',A[i].NAME[2]='U';
A[i].NAME[3]=(i+1)/10+'0',A[i].NAME[4]=(i+1)%10+'0';
A[i].NAME[5]='