循环程序设计二
知识摘要
- get()函数:字符串输入(题3)
题目1:循环结构习题:自然数n的各位数字之和
内容详情
题目1:
输入提示:输入仅一行,输入n的值。
输出提示:输出仅一行,输出相应的和值。
输入样本:100
输出样本:sum=1
程序源码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,sum=0;
scanf("%d",&n);
while(n) //各位数字求和
{
sum+=n%10;
n/=10;
}
printf("sum=%d",sum);
return 0;
}
题目2:循环结构习题:求2+22+222+…+22222的值
内容详情
题目2:
输入提示:输入仅一行,输入2个数a、n
输出提示:输出仅一行,输出相应的结果
输入样本:2 3
输出样本:Sn=246
程序源码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,n,i,s=0,Sn; //因为要求类和Sn,这里用s表示每一个n对应的数(22...)
scanf("%d%d",&a,&n);
for(i=1;i<=n;i++)
{
s=s*10+a; //得到22...
Sn+=s; //求和
}
printf("Sn=%d",Sn);
return 0;
}
题目3:循环结构习题:大小写字母转换
内容详情
题目3:
输入提示:输入仅一行,输入字符序列
输出提示:输出仅一行,字符转换。大写变小写,小写变大写,其它字符不变
输入样本:ABC&d#ef
输出样本:abc&D#EF
程序源码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
char a[100],b[100];
gets(a); //输入字符串
for(i=0;a[i]!='\0';i++)
{
if ('A'<=a[i]&&a[i]<='Z')
b[i]=a[i]+32;
else if('a'<=a[i]&&a[i]<='z')
b[i]=a[i]-32;
else
b[i]=a[i];
}
b[i]='\0'; //注意这里在末尾加了空字符
printf("%s",b);
return 0;
}
题目4:循环结构习题:任意输入n个数,输出最大和最小值及其对应的序列号
内容详情
题目4:
输入提示:输入第一行:输入n值。
输入第二行:输入n个整数。
输出提示:输出仅二行
第一行:输出最大值和最小值
第二行:输出最大值序列号和最小值序列号。
输入样本:4
78 98 88 97
输出样本:max=98,min=78
maxi=2,mini=1
程序源码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,a[100],i;
int max,min,maxi,mini;
scanf("%d",&n);
for (i=0;i<n;i++)
scanf("%d",&a[i]);
max=a[0];min=a[0];maxi=1;mini=1;
for (i=0;i<n;i++)
{
if (a[i]>max)
{
max=a[i];
maxi=i+1;
}
if (a[i]<min)
{
min=a[i];
mini=i+1;
}
}
printf("max=%d,min=%d\n",max,min);
printf("maxi=%d,mini=%d",maxi,mini);
return 0;
}
题目5:循环结构习题:求一个数除以9的商等于它各位数字的平方和
内容详情
题目5:
输入提示:输入仅一行,输入两个正整数m和n(m和n是三位数),两个数用空
格分开。
输出提示:输出多行,输出相应结果,一个数一行。
输入样本:325 700
输出样本:453
535
561
635
661
程序源码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m,n,i,x,y;
scanf("%d%d",&m,&n);
for (i=m;i<=n;i++)
{
x=i/9;
y=(i/100)*(i/100)+(i/10%10)*(i/10%10)+(i%10)*(i%10);
if (x==y)
printf("%d\n",i);
}
return 0;
}