刚学C语言,不太懂。把键盘输入的由数字字符组成的字符串转换为相应的数字。例如把"123"转换为整数123

假设
1)字符串中只包括'0'~'9',无其他字符,而且能够确保转换得到的整数在区间[0, 9999]之内。
2)字符串由键盘随机输入

有很多方法,我这里用sscanf()函数实现,它的作用是从字符串读取,而不是从标准输入读取,除此之外,和scanf()函数相同:

//---------------------------------------------------------------------------

#include <stdio.h>

int main(void)
{
char a[80];
int b;
scanf("%s",a);//输入字符串
sscanf(a,"%d",&b);//从字符串a读取一个整数
printf("%d\n",b);//输出这个整数
return 0;
}
//---------------------------------------------------------------------------追问

那这道题呢:
假如数组中存储有某班C语言期末成绩(百分制)。请编程输出
1)该班成绩的平均分(两位小数)
2)不及格的下标和成绩,不及格总人数
3)高于90分的下标和成绩,高于90分的总人数
4)班内有大约30人,具体人数自定
5)成绩以初始化方式输入到数组中

追答

很简单,用循环就可以办到,建议不要到这里来找作业答案,这么简单的问题,应该自己完成。

追问

好吧,谢谢你,我只是刚学,还没觉得很简单,我会努力的。

追答

第二题的程序:

//---------------------------------------------------------------------------

#include

int main(void)
{
double ave=0,sco[5]={92,73.89,58,97.6,53.8};//sco数组用于保存每位学生的成绩,这里共有5位学生
int i,cnt;

for (i = 0; i90:"); //3)高于90分的下标和成绩,高于90分的总人数
for (cnt=i = 0; i90) {
printf("Index:%d\t\t score:%g\n",i,sco[i]);
++cnt;
}
}
printf("total: %d\n\n",cnt);
return 0;
}
//---------------------------------------------------------------------------

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-15
#include <stdio.h>
int main(){
char a[10000];
int num=0,i=0;//num用来保存结果,i表示数组下标
gets(a);//接收字符串到数组a的库函数
while(a[i]!='\0'){//字符串结束符'\0'
num=num*10+(a[i]-48);//48是0的asc码值,字符在进行运算时是用它的asc码来计算的
i++;
}
printf("%d",num);
while(1);
return 0;
}

我运行了一下,是可以的。希望对你有所帮助。追问

这个,是整数123那道题吗?

第2个回答  2011-04-15
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
int i;
char ch[20];
aa: printf("请输入:");
gets(ch);
for(i=0;i<strlen(ch);i++)
{
if(ch[i]<'0' || ch[i]>'9')
break;
}

if(i < strlen(ch))
{
printf("输入只能为数字\n");
goto aa;
}
else
i = atoi(ch);

printf("%d\n",i);
}

用到一个stdlib.h头文件的atoi方法就行了
第3个回答  2011-04-15
void main(){
char a[];
int i,s=0;
gets(a);
for(i=0:a[i]!=0:i++)
s=10*s+a[i]-'0';
printf("%d",s):}
追问

第二题的这三问都可以在那个程序里实现吗?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网