㈠ c語言讀取文件中數字並且轉為二維數組
1、使用雙層循環語句,就可以依次把數據順序讀入到一個二維數組當中了。
2、常式:
#include <stdio.h>
#include <string.h>
#define MAXLINE 3
#define MAXCOLUMN 10
void main(void){
FILE *fp; //文件指針
char arr[MAXLINE][MAXCOLUMN]={0}; //定義3行10列的二維數組並初始化
int i = -1;
if((fp=fopen("./test/filename.txt","r"))==NULL){ //打開txt文件
perror("File open error!\n");
return;
}
while((fgets(arr[++i],MAXCOLUMN+1,fp))!=NULL) //讀取一行並存到arr數組
printf("%d: ",i); //列印行號
//puts(arr[i]);
char *subarr = strtok(arr[i]," "); //以空格為分隔符從arr[i]中獲得字串
while(subarr!=NULL){
data[i][j] = atoi(subarr); //將字串轉為int型數據存入data數組
printf("%d\t",data[i][j]); //列印data[i][j
subarr = strtok(NULL," "); //繼續獲得arr[i]中的字串
j++; //data數組列加一
}
printf("\n");
}
//循環完畢後,所有數據已在data數組中
printf("\n");
fclose(fp); //關閉指針
}
㈡ C語言中如何將double型數據轉換為數組
思路是:
先將Double型的數字整數部分變為整型數字一一取到數組中去(用循環整除可以做到,比如double i=123.456,就可以先把整數部分用j=(int)i強制類型轉換取出放入整型變數j中,再依次取到數組a中
(a[k++]=i%10;i/=10;)
這兩句語句就可以做到(不過數字是倒序的,最後輸出時要注意)。
再看小數部分,同理,但不用除法,而用乘法,先去除整數部分
(j=j-(int)j;)
再將小數部分不斷的乘10取整,取一位去除一位,存入另一數組:
l=(int)(j*10);
b[k++]=l;
j=j*10-l;...直到j*10==0為止
這樣就可以把j中的數按位取到了兩個數組中,接下去只要將兩數組合並到C數組中去,或者依次輸出整數部分和小數部分,中間別忘加小數點,輸出成字元在C語言里可以這樣:
printf("%c",a[i]+'0');
printf(".");
printf("%c",b[i]+'0');
以上就是我的演算法,請高手看了不要笑話,希望能給樓主帶來啟發。
㈢ 用c語言 將20位以內的數字轉為數組,並判斷輸入的數字的個數
其實很簡單啊。如下:
#include <stdio.h>
#include <string.h>
int main()
{
char c[21]; // 以字元串形式讀取
int a[21],size,i; // 存入int數組a中
gets(c); // 讀取,輸入應該是一串連續的數字
size = strlen(c); // 計算輸入數字的個數
for(i=0;i<size;i++) a[i]=c[i]-'0'; // 將char數組的每一位轉化為int數組對於的位
for(i=0;i<size;i++) printf("%d", a[i]); // 輸出
printf("\nsize = %d\n", size); // 個數
return 0;
}
㈣ C語言中如何將一個數字的各位數字以數組方式輸出
#include <stdio.h> #include <string.h> int main() { char a[100]; int n,i; scanf("%s",a); n=strlen(a); for(i=0;i<n;i++) printf("%c ",a[i]); }
㈤ c語言問題-把數字轉換為字元數組
#include
<stdio.h>
void
main()
{
int
i=10;
char
s[10];定義定符數組
sprintf(s,"%d",i);//把字轉換成字元放到數據里
//
itoa(i,s,10);
//效果一樣的
printf("%s",s);//列印結果
}
㈥ C語言,已知一串數字123456怎麼把它放到數組裡面
一串數字,是一個整數嗎?還是一個字元串?如果是字元串的話,本身就是一個數組。整數的話就把每位取出來賦值。
#include "stdafx.h"
#include <iostream>
using namespace std;
#define N 20
int main()
{
int num,a[N],n=0;
char s[N];
cout << "請輸入一串數字(數字處理):" << endl;
cin >> num;
int temp = num;
while (temp)
{
n++;
temp /= 10;
}
for (int i = n - 1; i >= 0; i--)
{
a[i]=num%10;
num /= 10;
}
for (int i = 0; i < n; i++)
cout << a[i] << " ";
cout << " 請輸入一串數字(字元串處理):" << endl;
cin >> s;
for (int i = 0;s[i]!='