㈠ 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]!='