1. 求c語言在指定行列輸出方法。。。
看到上面的演示了嗎,可以任意的在屏幕位置輸出字元,是這個意思嗎
2. 怎樣能用VB或C語言實現自動獲取某個TXT文檔里的內容,並輸出指定行列任何長度的內容,最好能逐行輸出,謝
前邊這位給的程序根本不通,簡直就是廢物。
一個讀文件的程序要要讓文件去適應你的程序?那程序不是廢物是什麼?
這個功能用最基本的fopen、fread就能完成。用不著拿IO流來脫褲子放屁。
而且,考慮到文件的內容長度不確定,根據需要可以:
1.讀一個字元就寫出一個字元到目的(屏幕或者文件)。
2.用鏈表,根據文件長度動態分配內存(malloc/free的組合完全可以勝任),一次性全部存儲,再處理。
3. 用c語言編寫輸出3*4的矩陣,求最後一個最小值並顯示行號和列號
#include<stdio.h>
int main() {
const unsigned row=3, col=4;//定義行列數
unsigned minx, miny;//最小值的行列
int min;//最小值
int nums[row][col];
for (unsigned i = 0; i < row; i++)//錄入數據
{
for (unsigned j = 0; j < col; j++)
{
scanf("%d",&nums[i][j]);
}
}
min = nums[0][0];//初始化最小值為第一行第一列的數
minx = 1;
miny = 1;
for (unsigned i = 0; i < row; i++)//遍歷數組找出最小值
{
for (unsigned j = 0; j < col; j++)
{
if (nums[i][j] <= min)
{
min = nums[i][j];
minx = i+1;
miny = j+1;
}
}
}
printf("最小值為:%d,位於第%u行%u列", min, minx, miny);//輸出數據
return 0;
}
4. c語言,想輸出任意一個矩陣(行列可以自己設計的),要怎麼做啊,我最頭痛的就是二維數組不能空著啊。。
不可以直接定義空數組,
可以試試一下方法
可以通過malloc()函數動態分配,示例:
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
typedef int datatype;
datatype **na(const int m,const int n) /*創建一個m行n列的datatype類型數組,返回首地址,如果創建失敗則返回NULL*/
{
int i;
datatype **a=(datatype**)malloc(sizeof(datatype *)*m);
if (!a) {
return NULL;
}
else
for (i = 0; i<m; i++) {
a[i]=(datatype*)malloc(sizeof(datatype)*n);
if (!a[i]) {
return NULL;
}
}
return a;
}
void dela(datatype **a,const int m) /*刪除用na()函數創建的並且有m行元素的二維數組a*/
{
int i;
for (i = 0; i<m; i++)
free(a[i]);
free(a);
}
int main(void)
{
datatype **dta=na(3,2); /*創建一個3行2列的datatype數組*/
int i,j;
if (!dta) { /*如果創建失敗,則輸出錯誤信息並結束程序*/
fprintf(stderr,"MEMORY ERROR\n");
return -1;
}
else
{
for (i=0; i<3; i++) { /*使用剛才創建的二維數組*/
for (j=0; j<2; j++) {
dta[i][j]=i*j;
printf("%d ",dta[i][j]);
}
putchar('\n');
}
}
dela(dta,3); /*動態創建的數組要手動刪除*/
return 0;
}
//---------------------------------------------------------------------------
5. C語言編程:自定義一個5*5的矩陣,找出矩陣中最大的數,並輸出其所在的行與列,怎麼寫
代碼文本:
#include "stdio.h"
#define N 5
void dispmatrix(int (*p)[N]){
int i,j;
for(i=0;i<N;i++){
for(j=0;j<N;printf("%4d",p[i][j++]));
putchar(' ');
}
}
void findmax(int p[][N]){
int i,j,mi,mj;
for(mi=mj=i=0;i<N;i++)
for(j=0;j<N;j++)
if(p[mi][mj]<p[i][j])
mi=i,mj=j;
printf("The MAX is a[%d][%d]=%d ",mi,mj,p[mi][mj]);
}
int main(int argc,char *argv[]){
int a[N][N]={41,467,334,500,464,145,705,724,169,391,716,895,478,
281,961,827,995,604,163,421,358,718,382,902,491};
printf("Matrix is as follows: ");
dispmatrix(a);
printf(" ");
findmax(a);
return 0;
}
供參考。
6. 輸入二維數組a[4][6],輸出其中的最大值及其對應的行列位置 c語言編寫
這個是要求用指針寫的,如果你還沒有學到指針,你就看下面那個答案的。
#include<stdio.h>
void main(){
int a[4][6]={{1,2,5,5,8,9},{14,12,14,14,4,7},{15,11,0,1,4,7},{1,2,3,4,5,6}};
int findmax(int *p,int *p1);
int ans,maxij;
ans=findmax(a[0],&maxij); //看第一個參數
printf("\nthe answer is a[%d][%d]=%d",maxij/6,maxij%4,ans);
}
int findmax(int *p,int *p1){ //將其當成一維數組對待
int m=p[0];
for (int i=0;i<24;i++)
{
if (m<p[i])
{m=p[i],*p1=i;
}
}
return m;
}
//第二種方法。。。。。。。。。。。
#include<stdio.h>
void main(){
int a[4][6]={{1,2,3,4,5,6},{1,4,7,5,6,2},{1,4,5,6,8,9},{2,5,6,7,8,4}};
int max=a[0][0],i,j;
for(i=0;i<4;i++)
{
for(j=0;j<6;j++)
{
if(max<a[i][j])
max=a[i][j];
}
}
printf("The Max is %d\t ",max);
}
7. c語言中如何獲取一個二維數組的行列數
有兩種方式:
1 二維數組的行列數在定義的時候就是確定好的,所以編程人員是知道二維數組的大小以及行列數的。 所以可以直接使用行列數的值。
為方便維護,可以將行列數定義為宏,直接調用對應的宏名作為行列值。
2 動態獲取。
對於type array[A][B];形式的二維數組,可以通過計算sizeof獲取行列數。
sizeof(array[0][0])為一個元素佔用的空間,
sizeof(array[0])為一行元素佔用的空間,
sizeof(array)為整個數組佔用的空間,
於是:
行數 = sizeof(array)/sizeof(array[0]);
列數 = sizeof(array[0])/sizeof(array[0][0]);