1.タイトルの説明:
すべての「水仙の数」を出力します。いわゆる「水仙の数」とは、桁の3乗和が数自体と等しい3次元の数を指します。たとえば、153 = 1 1 1 + 5 5 5 + 3 3 3であるため、153は水仙の数です。
コード:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
int b,s,g;
int i;
for(i=100;i<=999;i++)
{
b=i/100;
s=(i-b*100)/10;
g=i%10;
if((b*b*b+s*s*s+g*g*g)==i)
{
printf("%d\n",i);
}
}
return 0;
}
2.タイトルの説明:
選択方法で10個の整数を並べ替えます
#include<stdio.h>
int main(void)
{
int arr[10]={
10,9,8,7,6,5,4,3,2,1};
int i,j;
int min,temp;
for(i=0;i<10;i++)
{
min=i;
for(j=i+1;j<10;j++)
{
if(arr[min]>arr[j])
{
min=j;
}
}
if(min!=i)
{
temp=arr[min];
arr[min]=arr[i];
arr[i]=temp;
}
}
printf("排序后的数组为:\n");
for(i=0;i<10;i++)
{
printf("%d",arr[i]);
}
return 0;
}
注:最小のものを見つけるたびに、jではなくiと交換する必要があります。。
3.タイトルの説明:
関数を記述し、実際のパラメーターから文字列を渡し、文字列内の文字、数字、スペース、およびその他の文字の数を数え、メイン関数に文字列を入力して、上記の結果を出力します。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int english=0;
int space=0;
int number=0;
int other=0;
void count( char *str)
{
int i;
for(i=0;i<strlen(str);i++)
{
if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
{
english++;
}else if(str[i]==' ')
{
space++;
}else if(str[i]>='0'&&str[i]<='9')
{
number++;
}else{
other++;
}
}
}
int main(void)
{
char str[100];
gets(str);
count(str);
printf("英文字母的个数为%d\n",english);
printf("空格的个数为%d\n",space);
printf("数字的个数为%d\n",number);
printf("其他字符的个数为%d\n",other);
return 0;
}
注:メイン関数の質問と出力データを注意深く確認してください。
4.タイトルの説明:
2つのディスクファイル「A」と「B」があり、それぞれに文字の行が格納されています。次に、これら2つのファイルの情報を(アルファベット順に)マージして出力するプログラムを作成する必要があります。新しいファイル「C」に移動します。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
FILE *fa,*fb,*fc;
int i,j;
char a[100];
char b[100];
char temp;
if((fa=fopen("A.txt","r"))==NULL)
{
printf("can not open this file.");
exit(0);
}
fgets(a,100,fa);
fclose(fa);
if((fb=fopen("B.txt","r"))==NULL)
{
printf("can not open this file.");
exit(0);
}
fgets(b,100,fb);
fclose(fb);
strcat(a,b);
for(i=0;i<strlen(a)-1;i++)
{
for(j=0;j<strlen(a)-1-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
fclose(fb);
if((fc=fopen("C.txt","w"))==NULL)
{
printf("can not open this file.");
exit(0);
}
fputs(a,fc);
fclose(fc);
return 0;
}
注:
1。ファイルを開いて閉じます
2. strcmp()文字列比較関数
3. strcat()文字列スプライシング関数
4. strcpy()文字列コピー関数。後者の文字列は前者の文字列を上書きします。これは連結関数ではありません。