c語言第五列
❶ c語言中,在鍵盤上輸入值,求此二維數組(5行5列)第一行與第一列的元素
#include <stdio.h>
int main()
{
int i=0,j=0,a[5][5];
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
scanf("%d",&a[i][j]);
}
}
i=0;
for(j=0;j<5;j++)
{
printf("%d",a[i][j]);
}
fflush(stdin);
getchar();
}
❷ C語言中要是符號的級別一樣那麼是左結合性嗎
不是的。
結合網路運算符優先順序,你會發現第一列「優先順序」和第五列「結合方向」是獨立的,也就是說 同屬於一個優先順序的運算符可以是從右向左結合。
例如,對於*p++,由於*和++屬於相同優先順序,且它們是從右到左結合的,所以*p++被解釋為*(p++)而不是被解釋為(*p)++。
❸ 編寫一個數組,5行5列 C語言
/*
16 -78 11 59 -72
-22 55 53 27 -33
84 -83 -58 38 31
-24 -50 12 -75 -49
28 50 38 -54 26
各行負數個數:2 2 2 4 1
各列負數個數:2 3 1 2 3
Press any key to continue
*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intconstM=5;
intconstN=5;
voidShow(inta[][N],intm){
inti,j;
for(i=0;i<m;++i){
for(j=0;j<N;++j)
printf("%4d",a[i][j]);
printf(" ");
}
}
voidGetMat(inta[][N],intm){
inti,j,sign;
for(i=0;i<m;++i){
for(j=0;j<N;++j){
sign=rand()%2;
if(sign==0)sign=-1;
a[i][j]=sign*(rand()%90+10);
}
}
}
intmain(){
inti,j,a[M][N],row[M],colm[N];
srand(time(0));
GetMat(a,M);
for(i=0;i<M;++i){//統計各行負數的個數
row[i]=0;
for(j=0;j<N;++j)
if(a[i][j]<0)++row[i];
}
for(i=0;i<N;++i){//統計各列負數個數
colm[i]=0;
for(j=0;j<M;++j)
if(a[j][i]<0)++colm[i];
}
Show(a,M);
printf("各行負數個數:");
for(i=0;i<M;++i)
printf("%d",row[i]);
printf(" ");
printf("各列負數個數:");
for(i=0;i<N;++i)
printf("%d",colm[i]);
printf(" ");
return0;
}
❹ c語言二堆數組四行五列求每一列和,詳細一點
#include <stdio.h>
int main (void)
{
int a[4][5];
int b[5];
int *p;
p=&a[0][0];
//輸入四行五列的20個數值
printf("請輸入第一行的5個數值,數值間以逗號分開\n");
scanf("%d,%d,%d,%d,%d",&*p,&*(p+1),&*(p+2),&*(p+3),&*(p+4));
printf("請輸入第二行的5個數值,數值間以逗號分開\n");
scanf("%d,%d,%d,%d,%d",&*(p+5),&*(p+6),&*(p+7),&*(p+8),&*(p+9));
printf("請輸入第三行的5個數值,數值間以逗號分開\n");
scanf("%d,%d,%d,%d,%d",&*(p+10),&*(p+11),&*(p+12),&*(p+13),&*(p+14));
printf("請輸入第四行的5個數值,數值間以逗號分開\n");
scanf("%d,%d,%d,%d,%d",&*(p+15),&*(p+16),&*(p+17),&*(p+18),&*(p+19));
//計算每一列的和,並放入數組b[4]中
b[0]= a[0][0]+a[1][0]+a[2][0]+a[3][0];
b[1]= a[0][1]+a[1][1]+a[2][1]+a[3][1];
b[2]= a[0][2]+a[1][2]+a[2][2]+a[3][2];
b[3]= a[0][3]+a[1][3]+a[2][3]+a[3][3];
b[4]= a[0][4]+a[1][4]+a[2][4]+a[3][4];
//輸出數組b[4]
printf("第一列的數值為%d\n",b[0]);
printf("第二列的數值為%d\n",b[1]);
printf("第三列的數值為%d\n",b[2]);
printf("第四列的數值為%d\n",b[3]);
printf("第五列的數值為%d\n",b[4]);
return 0;
}
/*
運行結果如下:
---------------------------------------
請輸入第一行的5個數值,數值間以逗號分開
12,124,253,54,43
請輸入第二行的5個數值,數值間以逗號分開
1243,124,124,354,34
請輸入第三行的5個數值,數值間以逗號分開
12345,423,45,67,4
請輸入第四行的5個數值,數值間以逗號分開
25,564,6,4,7
第一列的數值為13625
第二列的數值為1235
第三列的數值為428
第四列的數值為479
第五列的數值為88
---------------------------------------
運行過可以用的,望採納
*/
❺ c語言程序問題,看不懂求解說(主要是雙斜杠那兩行看不懂)
#include <stdio.h>
void main ()
{
int i,j,k;
float a[5][5]={{78,79,90,67},{60,76,89,63},
{86,75,96,56},{54,63,86,96}, {63,96,98,97}};//有五組數字,都缺少最後一個元素,初始化為0
float sum,t;
for(i=0;i<5;i++)
{ for(j=0;j<5;j++)
printf("%12f",a[i][j]); //輸出這些數
printf("\n"); }
for(i=0;i<5;i++) //把每一組的數總數算出,存放到該數組的第5個元素里
{ sum=0;
for(j=0;j<4;j++)
sum=sum+a[i][j];
a[i][4]=sum/4;
}
for(k=0;k<4;k++) //其實這是一個冒泡法排序,可以看成固定的格式
for(i=0;i<4-k;i++)
if(a[i][4]<a[i+1][4]) //這里是發現在前面的數小於後面的總數,就要交換,所以是從大到小排序的
總和就是開始算出的sum存放到每一組數據的最後一個數,所以a[i][4]就等於
a[i][0]+a[i][1]+a[i][2]+a[i][3]了
// for(j=0;j<5;j++) //這兩行是把一組數據完全和另一組對應交換,前面發現順序和期望的不同
// {t=a[i][j];a[i][j]=a[i+1][j];a[i+1][j]=t;}
for(i=0;i<5;i++) //後面是輸出了
{ for(j=0;j<5;j++)
printf("%12f",a[i][j]);
printf("\n");
}
}
❻ c語言中,輸出函數中的%-4d是什麼意思
%-4d是用於C語言輸出的格式字元串,可以用於printf類函數,包括printf, sprintf, fprintf,vfprintf,vprintf,vsprintf,snprintf,vsnprintf,vasprintf等等。
各種函數中的含義是相同的,都是按照10進制形式輸出整數值,輸出值范圍如果不足4列寬度,那麼按4列寬度輸出,否則按實際寬度輸出。 輸出結果數值在左側,右側用空格補足。
%-4d的四個字元每個都有各自的功能,具體如下:
1 %:格式字元串的引導標識,每個格式字元串必須以%開頭。
2 -: 輸出的內容左側為有效數據,右側為補足字元。
3 4:輸出佔4列寬度,不足用空格補齊,超出按實際長度輸出。
4 d: 按照10進制整型輸出。
下面這個例子輸出兩行數據,每行五個數值:
#include<stdio.h>
intmain()
{
printf("%-4d%-4d%-4d%-4d%-4d ",1,12,123,123412,12345);
printf("%-4d%-4d%-4d%-4d%-4d ",23,123,2341,1,123456);
return0;
}
輸出結果為
11212312341212345
2312323411123456
從中可以看到其作用及缺陷。
對於低於4位的整數,可以很好的實現輸出及對齊效果,比如例子中的第一列和第二列。
如果輸出位數為4位,那麼輸出值和下一個輸出間不會有分隔符,比如第二行的3 4兩列,本來是2341和1,但輸出的效果是一個數23411。
當數值超過4位時對齊效果會被打亂,同時與下一個輸出見沒有間隔。
比如第一行的第四列,輸出數值為123412,與下一個12345沒有分隔,同時第五列的12345本應與第二行的123456左對齊,但由於123412侵佔了該位置,導致二者無法達成對齊效果。
所以%-4d這類格式輸出,僅使用與數據規模在四位數以下的情況,超出則會出錯。
如果在數據中存在負值,則負值僅可以為三位數或以下,因為輸出的符號也同樣會佔一列寬度。
❼ C語言讀文件按列讀怎麼讀
比如想要把第四,五列放在c[i], d[i]中。
fscanf(fp, "%*d%*d%%*d%d%d", &c[i], &d[i]); // 這樣就是只讀第四,第五列
fscanf(fp, "%*d%*d%%d%d%d", &c[i], &d[i]); // 這樣就是只讀第三,第四,第五列
由於 %*d 是讀入後,忽略的意思,也就是,讀入第一、第二列後都忽略了。
❽ c語言文件操作
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
FILE* pf;
int i=0;
int nSum=0; //第五列的和
float nAve; //平均值
int nNum[20]; //存放第五列的值
int nSN[20]; //存放編號,主要用來格式化輸入,沒什麼實際意義
if(!(pf = fopen("D:\\1.dat","r"))) //文件路徑自己設置
{
printf("can't open file\n");
exit(1);
}
while(!feof(pf))
{
fscanf(pf, "50136 2001 1 %d -%d\n", &nSN[i], &nNum[i]); //格式化輸入第五列的值賦給數組nNum
++i;
}
fclose(pf);
for(int j=0; j<i; ++j)
{
nSum+=nNum[j];
}
nAve = (float)nSum/(i-1);
printf("第五列的平均值為:%f\n", nAve);
return 0;
}
❾ 用C語言寫「輸入一個五行五列的矩陣求外圍一圈的數字和」
#include <iostream>
using namespace std;
int main()
{
int i,j;
int a[5][5], sum=0;
for(i=0; i<5; i++)
for(j=0; j<5; j++)
{
scanf("%d",&a[i][j]);
if(i==0 || i==4) // 計算第一行和第五行所有數之和
{
sum += a[0][j] + a[4][j];
}
}
for(i=1; i<4; i++) // 計算第一列和第五列從第二行到第三行的所有數之和
{
sum += a[i][0] + a[i][4];
}
printf("%ld\n",sum);
return 0;
}
❿ c語言求第幾列
#include<stdio.h>
intmain()
{intn=0;
charc;
c=getchar();
while(c>='A'&&c<='Z')
{n=n*26+c-'A'+1;
c=getchar();
}
printf("%d
",n);
return0;
}