四位十进制数据、然后输出
#include <stdio.h>
#include <string.h>
const int MAXSIZE = 100;
int main() {
char s[MAXSIZE + 1],t[MAXSIZE/4][5];
int i,j,k,len,num,n = 0;
printf("输入数字串:\n");
fgets(s,MAXSIZE,stdin);
len = strlen(s) - 1;
i = len - 4;
while(i >= 0) {
for(j = 0; j < 4; ++j)
t[n][j] = s[i + j];
t[n][j] = '\0';
++n;
i -= 4;
}
if(i + 4 > 0) {
for(k = 0; k < len%4; ++k)
t[n][k] = s[k];
t[n][k] = '\0';
++n;
}
for(i = n - 1; i >= 0; --i) {
num = 0;
for(j = 0; t[i][j]; ++j) {
if(t[i][j] < '0' || t[i][j] > '9') {
printf("'%d':非法数字!\n",t[i][j]);
return 1;
}
num = 10 * num + t[i][j] - '0';
}
printf("%d ",num);
}
printf("\n");
return 0;
}
#include <string.h>
const int MAXSIZE = 100;
int main() {
char s[MAXSIZE + 1],t[MAXSIZE/4][5];
int i,j,k,len,num,n = 0;
printf("输入数字串:\n");
fgets(s,MAXSIZE,stdin);
len = strlen(s) - 1;
i = len - 4;
while(i >= 0) {
for(j = 0; j < 4; ++j)
t[n][j] = s[i + j];
t[n][j] = '\0';
++n;
i -= 4;
}
if(i + 4 > 0) {
for(k = 0; k < len%4; ++k)
t[n][k] = s[k];
t[n][k] = '\0';
++n;
}
for(i = n - 1; i >= 0; --i) {
num = 0;
for(j = 0; t[i][j]; ++j) {
if(t[i][j] < '0' || t[i][j] > '9') {
printf("'%d':非法数字!\n",t[i][j]);
return 1;
}
num = 10 * num + t[i][j] - '0';
}
printf("%d ",num);
}
printf("\n");
return 0;
}
温馨提示:答案为网友推荐,仅供参考