1. קלוט מהמשתמש 6 תווים למערך והדפס אותם בסדר הפוך, תו תחת תו.
2. קלוט סדרת מספרים מהמשתמש, סדר אותם במערך מהקטן לגדול, והדפס מהו התו הגדול והקטן ביותר מבניהם.
3. קלוט מהמשמש מערך דו ממדי של מספרים חיוביים, וענה האם קיבלנו "ריבוע קסם".
ריבוע קסם הוא מערך דו ממדי של X על X מספרים, בו סכום כל השורות שווה. סכום כל העמודות שווה. סכום שני האלכסונים הכי גדולים שווה, וסכום כל שורה שווה לסכום כל עמודה ושווה גם לסכום כל אלכסון.
#include<stdio.h>#definegg 3
void main(){
int A[gg],i,b,flag;
printf("Enter %d numbers: ",gg);
for(i=0;i<gg;i++){
scanf ("%d",&A[i]);
}
for(flag=0;flag==0;){
flag = 1;
for(i=0;i<gg-1;i++){
if (A[i] > A[i+1]){
flag = 0;
b=A[i];
A[i]=A[i+1];
A[i+1]=b;
}
}
}
printf("The lower: %d\nThe bigger: %d\n",A[0],A[gg-1]);
}
תשובה 3
#include<stdio.h>#defineN 3
void main(){
int A [N][N];
int i,j,flag=0,sum_line1=0,sum_line2=0;
printf("Enter lines:\n");
for (i=0;i<N;i++)
{
for(j=0;j<N;j++){
scanf("%d",&A[i][j]);
}
}
/// עד כאן קלטנוfor(i=0,j=0;j<N;j++){ // סכום השורה הראשונה
sum_line1+=A[i][j];
}
for (i=1;i<N;i++){ // מתחילים ישר מהשורה השנייהfor(sum_line2=0,j=0;j<N;j++){
sum_line2 += A[i][j];
}
if (sum_line2 != sum_line1){
flag = 1;
break;
}
}
// //////// // אם עד כאן אם הדגל נשאר 0 אז כל השורות שוות בערכןfor(sum_line1=0, i=0,j=0 ; i<N && flag==0 ; i++){ // סכום העמודה הראשונה
sum_line1+=A[i][j];
}
if (sum_line2 != sum_line1){
flag = 1;
}
for (j=1;j<N && flag==0;j++) // מתחילים ישר מהעמודה השנייה
{
for(sum_line2=0,i=0; i<N ; i++){
sum_line2 += A[i][j];
}
if (sum_line2 != sum_line1){
flag = 1;
break;
}
}
//////// עד כאן בדקנו אם כל השורות שוות, אם כל העמודות שוות, ואם השורות שוות לעמודות. אם הכל שווה אז הדגל 0// אלכסוניםfor (sum_line1=0 , i=0,j=0 ; j<N && i<N && flag==0;j++,i++)
sum_line1 += A[i][j];
if (sum_line2 != sum_line1)
flag = 1;
for (sum_line2=0 , i=0,j=N-1 ; j>=0 && i<N && flag==0;j--,i++)
sum_line2 += A[i][j];
if (sum_line2 != sum_line1)
flag = 1;
//// סוףif (flag==0)
printf("Indeed a magic square:\n");
else
printf("NOT a magic square:\n");
}
אין תגובות:
הוסף רשומת תגובה