首先,啊~,指標真難!!!
然后這個我大概知道我哪里錯了,但是不咋會改,十分感謝!!!
代碼:
#include<stdio.h>
int main(){
int i,j,a[3][3]={0},*p,*q;
float average;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
a[i][j]=(rand()%100+0)-50;
p=a[i];
}
}
printf("隨機生成的陣列為:\n");
for(i=0; i<3; i++)
for(j=0; j<3; j++){
printf("%5d ", a[i][j]);
if(j == 2)
printf("\n");
}
for(i=0;i<3;i++){
q=a[i];
average = (*(p+i*3+0)+*(p+i*3+1)+*(p+i*3+2))/3.;
printf("第%d行的平均數為%.3f\n",i+1,average);
}
return 0;
}
uj5u.com熱心網友回復:
需要報個班了,哈哈??uj5u.com熱心網友回復:
謝謝了,看來是這個樣子的,我可能真的需要報個班了…靠我自己貌似越學越亂了…
uj5u.com熱心網友回復:
那個p沒有意義,只用q就可以uj5u.com熱心網友回復:
謝謝啦,想了一晚上了,已經想明白咋改了
uj5u.com熱心網友回復:
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
int a[3][3] = { 0, };
int *p = NULL;
int *q = NULL;
double average = 0;
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
a[i][j] = 3 * i + j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
printf("\t%d", a[i][j]);
printf("\n");
}
for (i = 0; i < 3; i++)
{
average = (a[i][0] + a[i][1] + a[i][2]) / 3.;
printf("line %d average: %.3f\n", i + 1, average);
}
printf("\n");
for (i = 0; i < 3; i++)
{
p = a[i];
average = (*(p + 0) + *(p + 1) + *(p + 2)) / 3.;
printf("line %d average: %.3f\n", i + 1, average);
}
printf("\n");
for (i = 0; i < 3; i++)
{
q = (int *)a;
average = (
*(q + i * 3 + 0) +
*(q + i * 3 + 1) +
*(q + i * 3 + 2) ) / 3.;
printf("line %d average: %.3f\n", i + 1, average);
}
return 0;
}
uj5u.com熱心網友回復:
average = (*q + *(++q) + *(++q))/3;uj5u.com熱心網友回復:
我可以教你指標方面的東西。uj5u.com熱心網友回復:
不一定時,但不收錢。
uj5u.com熱心網友回復:
我也在學習種
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/66120.html
標籤:新手樂園
上一篇:訊息佇列問題,求大佬解惑
下一篇:請教大佬c語言
